แอตทริบิวต์ maxlength ใช้กำหนด จำนวนตัวอักษรสูงสุด ที่ผู้ใช้สามารถพิมพ์ได้ใน <input> (type: text, search, url, tel, email, password) และ <textarea> เบราว์เซอร์จะป้องกันการพิมพ์เกินจำนวนที่กำหนดอัตโนมัติ
ตัวอย่างการใช้งาน
<!DOCTYPE html>
<html>
<body>
<form action="">
<label>อันดับ (1-10): <input type="number" name="rank" min="1" max="10"></label><br><br>
<label>นักคริกเก็ต (สูงสุด 20 ตัวอักษร): <input type="text" name="cricketer" maxlength="20"></label><br><br>
<label>คำอธิบาย (สูงสุด 200 ตัวอักษร):<br>
<textarea name="description" maxlength="200" rows="4" cols="50"></textarea>
</label><br><br>
<input type="submit" value="ส่ง">
</form>
</body>
</html>
maxlength vs max (สำหรับ Number)
| แอตทริบิวต์ | ใช้กับ Type | ความหมาย |
|---|---|---|
| maxlength | text, search, url, tel, email, password, textarea | จำนวน ตัวอักษร สูงสุด |
| max | number, date, time, range, datetime-local | ค่า ตัวเลข/วันที่ สูงสุด |
minlength (HTML5)
กำหนด จำนวนตัวอักษรต่ำสุด (Validation ตอน Submit):
<input type="password" name="pwd" minlength="8" maxlength="32" required>
<textarea name="bio" minlength="50" maxlength="500"></textarea>
ตัวนับตัวอักษร (Character Counter) - UX Pattern
<textarea id="bio" maxlength="200" rows="4"></textarea>
<div id="counter">0 / 200</div>
<script>
const textarea = document.getElementById('bio');
const counter = document.getElementById('counter');
textarea.addEventListener('input', () => {
const len = textarea.value.length;
const max = textarea.maxLength;
counter.textContent = `${len} / ${max}`;
counter.style.color = len > max * 0.9 ? 'red' : len > max * 0.7 ? 'orange' : '#666';
});
</script>
Validation
- Browser ป้องกันการพิมพ์เกิน
maxlengthอัตโนมัติ (Native) minlengthตรวจสอบตอน Submit (Constraint Validation API)- JavaScript:
input.validity.tooLong,input.validity.tooShort - Server-side Validation: ต้อง Validate อีกครั้ง (Client-side ข้ามได้)
Browser Support
maxlength: ทุก Browser (รวม IE10+)minlength: Chrome 40+, Firefox 35+, Safari 10+, Edge 17+textarea maxlength: HTML5 (IE10+)