Datalist สำหรับการเติมข้อความอัตโนมัติ
แนะนำค่าที่ป้อนด้วยองค์ประกอบ datalist
Datalist สำหรับการเติมข้อความอัตโนมัติ เป็นบทเรียน HTML Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน HTML Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน
datalist คืออะไร
องค์ประกอบ <datalist> จะแสดงรายการคำแนะนำที่กำหนดไว้ล่วงหน้าสำหรับ <input>:
<label for="browser">Favorite browser</label>
<input list="browsers" id="browser" name="browser">
<datalist id="browsers">
<option value="Chrome">
<option value="Firefox">
<option value="Safari">
<option value="Edge">
</datalist>
<!-- list attribute links input to datalist by id -->
<!-- User can type freely OR select a suggestion -->datalist เทียบกับ select
ความแตกต่างสำคัญระหว่าง <datalist> และ <select>:
- datalist — ข้อความอิสระพร้อมคำแนะนำ (ผู้ใช้พิมพ์อะไรก็ได้)
- select — ตัวเลือกที่จำกัด (ผู้ใช้ต้องเลือกจากรายการ)
ใช้ datalist เมื่อต้องการแนะนำค่าแต่ไม่ต้องการจำกัดข้อมูลที่ป้อน
การเชื่อมโยง datalist กับ input
แอตทริบิวต์ list บน <input> ต้องตรงกับ id ของ <datalist>:
<input type="text" list="fruits" name="fruit">
<datalist id="fruits">
<option value="Apple">
<option value="Banana">
<option value="Cherry">
</datalist>datalist กับชนิด input ที่แตกต่างกัน
<datalist> ใช้ได้กับ input หลายชนิด:
<!-- text + datalist: type-ahead suggestions -->
<input type="text" list="countries">
<!-- range + datalist: tick marks -->
<input type="range" min="0" max="100" step="10" list="marks">
<datalist id="marks">
<option value="0"> <option value="25">
<option value="50"> <option value="75"> <option value="100">
</datalist>
<!-- color + datalist: color palette shortcuts -->
<input type="color" list="brand-colors">
<datalist id="brand-colors">
<option value="#0070f3">
<option value="#e86f00">
</datalist>label ของ option ใน datalist
ตัวเลือกใน datalist สามารถมีป้ายกำกับที่มองเห็นได้และค่าที่ส่ง:
<datalist id="countries">
<option value="US">United States</option>
<option value="GB">United Kingdom</option>
<option value="DE">Germany</option>
</datalist>
<!-- In some browsers, label shows in dropdown
value is submitted when the option is selected -->การกรองคำแนะนำ
เบราว์เซอร์จะกรองคำแนะนำขณะที่ผู้ใช้พิมพ์:
- อัลกอริทึมการจับคู่แตกต่างกันไปตามเบราว์เซอร์
- บางเบราว์เซอร์จับคู่จากจุดเริ่มต้น ส่วนบางเบราว์เซอร์จับคู่จากตำแหน่งใดก็ได้ในข้อความ
- คุณไม่สามารถควบคุมพฤติกรรมการกรองของเบราว์เซอร์ได้
- หากต้องการกรองเอง ให้สร้างส่วนประกอบเติมข้อความอัตโนมัติที่กำหนดเองด้วย ARIA
datalist แบบไดนามิกด้วย JavaScript
อัปเดตตัวเลือกของ datalist แบบไดนามิก:
<input type="text" list="suggestions" id="search-input">
<datalist id="suggestions"></datalist>
<script>
document.getElementById('search-input').addEventListener('input', async function() {
const query = this.value;
const res = await fetch(`/api/search?q=${query}`);
const items = await res.json();
const dl = document.getElementById('suggestions');
dl.innerHTML = items.map(item =>
`<option value="${item.name}">`
).join('');
});
</script>การเข้าถึง datalist
ข้อควรพิจารณาด้านการเข้าถึงสำหรับ datalist:
- โปรแกรมอ่านหน้าจอจะประกาศคำแนะนำเป็นรายการตัวเลือก
- ผู้ใช้สามารถใช้ปุ่มลูกศรนำทางคำแนะนำ
- ช่องป้อนข้อมูลยังคงรับข้อความอิสระได้ — ตรวจสอบให้แน่ใจว่าการตรวจสอบความถูกต้องรองรับกรณีนี้
ข้อควรรู้เกี่ยวกับการรองรับของเบราว์เซอร์
เบราว์เซอร์รองรับ datalist ได้ดี แต่มีข้อแตกต่างบางประการ:
- Chrome, Edge, Firefox: รองรับครบถ้วน
- Safari: รองรับตั้งแต่ Safari 12.1 ขึ้นไป
- เบราว์เซอร์บนอุปกรณ์เคลื่อนที่: ส่วนใหญ่แสดงคำแนะนำ แต่ส่วนติดต่อผู้ใช้แตกต่างกัน
- ควรทดสอบบนเบราว์เซอร์เป้าหมายเสมอก่อนพึ่งพา datalist
กรณีที่ไม่ควรใช้ datalist
Datalist ไม่เหมาะเมื่อ:
- ต้องการการตรวจสอบที่เข้มงวด (ผู้ใช้ต้องเลือกจากรายการ)
- ต้องการจัดรูปแบบตัวเลือกเอง (เบราว์เซอร์ควบคุมรูปลักษณ์ทั้งหมด)
- ต้องการจัดกลุ่ม (datalist ไม่รองรับ optgroup)
ในกรณีเหล่านี้ ให้ใช้ส่วนประกอบเติมข้อความอัตโนมัติที่กำหนดเองร่วมกับ ARIA role="combobox"
datalist เทียบกับช่องค้นหา
เปรียบเทียบ datalist กับช่องค้นหาที่มีการเติมข้อความอัตโนมัติ:
<input type="search" name="q" list="search-suggestions">
<datalist id="search-suggestions">
<option value="HTML tutorial">
<option value="HTML forms">
<option value="HTML accessibility">
</datalist>
<!-- type="search" provides search-specific UI on mobile -->
<!-- list attribute adds datalist suggestions to any input type -->ตรวจสอบอย่างรวดเร็ว
จะเชื่อมโยงช่องป้อนข้อมูลกับองค์ประกอบ datalist ได้อย่างไร
สรุป: datalist
สาระสำคัญของ datalist:
<datalist id>+<input list>— เชื่อมโยงกันด้วย id/list ที่ตรงกัน- ผู้ใช้พิมพ์ข้อความได้อย่างอิสระหรือเลือกคำแนะนำก็ได้
- ใช้
<select>เมื่อต้องจำกัดตัวเลือก - ใช้ได้กับข้อความ ช่วงสี และ input ชนิดอื่น ๆ
- คำแนะนำจะถูกกรองขณะที่ผู้ใช้พิมพ์
คำถามที่พบบ่อย
บทเรียน “Datalist สำหรับการเติมข้อความอัตโนมัติ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Datalist สำหรับการเติมข้อความอัตโนมัติ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส HTML Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Datalist สำหรับการเติมข้อความอัตโนมัติ”
แนะนำค่าที่ป้อนด้วยองค์ประกอบ datalist คุณปฏิบัติ HTML Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน HTML Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน HTML Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “Datalist สำหรับการเติมข้อความอัตโนมัติ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน HTML Academy นี้ได้ไหม
ได้ บทเรียน HTML Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เมนูแบบดรอปดาวน์ด้วย Select และ option
- Textarea สำหรับการป้อนข้อมูลหลายบรรทัด
- กลุ่มช่องทำเครื่องหมายและปุ่มตัวเลือก
- Datalist สำหรับการเติมข้อความอัตโนมัติ