จากมุมมองทางเทคนิคต่างกันอย่างสิ้นเชิง <datalist>
เป็นภาชนะที่เป็นนามธรรมของตัวเลือกสำหรับองค์ประกอบอื่น ๆ ในกรณีของคุณคุณเคยใช้<input type="text"
แต่คุณยังสามารถใช้กับช่วงสีวันที่ ฯลฯhttp://demo.agektmr.com/datalist/
หากใช้กับการป้อนข้อความเป็นประเภทของการเติมข้อความอัตโนมัติคำถามก็คือ: การใช้การป้อนข้อความรูปแบบอิสระจะดีกว่าหรือไม่หรือรายการตัวเลือกที่กำหนดไว้ล่วงหน้า ในกรณีนี้ฉันคิดว่าคำตอบนั้นชัดเจนกว่าเล็กน้อย
หากเรามุ่งเน้นไปที่การใช้<datalist>
เป็นรายการตัวเลือกสำหรับช่องข้อความนี่คือความแตกต่างบางประการระหว่างสิ่งนั้นกับกล่องเลือก:
<datalist>
กล่องข้อความที่เลี้ยงมีสายเดียวสำหรับป้ายแสดงผลทั้งในและส่ง <option value='ie'>Internet Explorer</option>
เลือกกล่องสามารถมีมูลค่าส่งฉลากแสดงผลเทียบกับที่แตกต่างกัน
<datalist>
กล่องข้อความที่เลี้ยงไม่สนับสนุน<optgroup>
แท็กที่จะจัดแสดงผล
- คุณไม่สามารถ จำกัด ผู้ใช้ให้อยู่ในรายการตัวเลือก
<datalist>
เช่นเดียวกับที่คุณทำได้ด้วยไฟล์<select>
.
- onChangeเหตุการณ์ทำงานแตกต่างกัน ใน
<select>
องค์ประกอบเหตุการณ์ onchange จะเริ่มทำงานทันทีเมื่อมีการเปลี่ยนแปลงในขณะ<input type="text"
ที่เหตุการณ์จะเริ่มทำงานหลังจากองค์ประกอบสูญเสียโฟกัสหรือผู้ใช้กด Enter
<datalist>
มีการสนับสนุนที่ไม่แน่นอนในเบราว์เซอร์ วิธีแสดงตัวเลือกที่มีอยู่ทั้งหมดไม่สอดคล้องกันและสิ่งต่างๆจะแย่ลงจากตรงนั้น
ประเด็นสุดท้ายเป็นเรื่องใหญ่ในความคิดของฉัน เนื่องจากคุณจะต้องมีทางเลือกสำรองสำหรับการเติมข้อความอัตโนมัติที่เป็นสากลมากขึ้นจึงแทบไม่มีเหตุผลใดที่จะต้องประสบปัญหาในการกำหนดค่าไฟล์<datalist>
. นอกจากนี้การเสียบเติมข้อความอัตโนมัติที่เหมาะสมจะช่วยให้สามารถกำหนดรูปแบบการแสดงตัวเลือกของคุณได้ซึ่ง<datalist>
ไม่ได้ทำ หากองค์ประกอบที่<datalist>
ได้รับการยอมรับ<li>
ซึ่งคุณสามารถปรับเปลี่ยนได้ตามที่คุณต้องการมันจะยอดเยี่ยมมาก! แต่ไม่มี.
ตราบเท่าที่ฉันสามารถบอกได้ว่าการ<datalist>
ค้นหาเป็นการจับคู่แบบตรงทั้งหมดจากจุดเริ่มต้นของสตริง ดังนั้นหากคุณมี<option value="internet explorer">
และค้นหา "explorer" คุณจะไม่ได้ผลลัพธ์ ปลั๊กอินเติมข้อความอัตโนมัติส่วนใหญ่จะค้นหาที่ใดก็ได้ในข้อความ
ฉันใช้<datalist>
เป็นเพียงตัวช่วยอำนวยความสะดวกที่รวดเร็วและขี้เกียจสำหรับหน้าเว็บภายในบางหน้าซึ่งฉันรู้ด้วยความมั่นใจ 100% ว่าผู้ใช้มี Chrome หรือ Firefox รุ่นล่าสุดและจะไม่พยายามส่งค่าปลอม สำหรับกรณีอื่น ๆ ยากที่จะแนะนำให้ใช้<datalist>
เนื่องจากการรองรับเบราว์เซอร์ที่แย่มาก