0Pricing
HTML Academy · บทเรียน

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เมนูแบบดรอปดาวน์ด้วย Select และ option
  2. Textarea สำหรับการป้อนข้อมูลหลายบรรทัด
  3. กลุ่มช่องทำเครื่องหมายและปุ่มตัวเลือก
  4. Datalist สำหรับการเติมข้อความอัตโนมัติ
← กลับไปที่ HTML Academy