ใช้แอตทริบิวต์ list สำหรับอ้างอิงองค์ประกอบ <datalist> ที่มีตัวเลือกกำหนดไว้ล่วงหน้าสำหรับองค์ประกอบ <input> ใน HTML
ตัวอย่าง
ลองรันโค้ดต่อไปนี้เพื่อใช้งานแอตทริบิวต์ list:
<!DOCTYPE html>
<html>
<head>
<title>HTML Datalist Tag</title>
</head>
<body>
<label for="tutorial">Select a tutorial:</label>
<input list="tutorials" id="tutorial" name="tutorial" placeholder="Type or select...">
<datalist id="tutorials">
<option value="Java">
<option value="ASP">
<option value="PHP">
<option value="Ruby">
<option value="jQuery">
</datalist>
<p>Try to add any of the tutorial name mentioned above.</p>
</body>
</html>
วิธีการทำงาน
<input>มีแอตทริบิวต์listอ้างอิงไปที่idของ<datalist><datalist>มี<option>ต่างๆ เป็นตัวเลือก- ผู้ใช้สามารถ พิมพ์ค้นหา หรือ เลือกจากรายการ ได้
- แตกต่างจาก
<select>: ผู้ใช้พิมพ์ค่าใหม่ที่ไม่อยู่ในรายการได้ (Combobox behavior)
แอตทริบิวต์ของ <option> ใน datalist
| แอตทริบิวต์ | คำอธิบาย |
|---|---|
value |
ค่าที่จะส่งเมื่อส่งฟอร์ม (จำเป็น) |
label |
ข้อความที่แสดงในรายการ (ถ้าไม่มีจะใช้ value) |
ตัวอย่างขั้นสูง
<!-- ใช้ label แสดงข้อความที่เข้าใจง่าย แต่ส่งค่า value -->
<input list="browsers" name="browser" placeholder="Choose browser">
<datalist id="browsers">
<option value="chrome" label="Google Chrome">
<option value="firefox" label="Mozilla Firefox">
<option value="safari" label="Apple Safari">
<option value="edge" label="Microsoft Edge">
</datalist>
การจัดสไตล์ (จำกัด)
<datalist> และ dropdown ที่เปิดออกมีการจัดสไตล์ได้จำกัดมาก (ขึ้นอยู่กับ OS/เบราว์เซอร์) สำหรับ UI ที่ปรับแต่งได้เต็มที่ ควรใช้ JavaScript libraries เช่น Select2, Choices.js, หรือสร้าง Custom Combobox
Browser Support
- รองรับในเบราว์เซอร์สมัยใหม่ทุกตัว (Chrome, Firefox, Safari, Edge)
- IE10+ รองรับบางส่วน
- Mobile browsers รองรับดี