angularjs - ปิดการใช้งานปุ่ม Enter บน Twitter Typeahead?
เป็นไปได้หรือไม่ที่จะปิดการกดปุ่ม Enter บนองค์ประกอบในเมนูแบบเลื่อนลงใน Twitter Typeahead? ผมกำลังใช้ Angular กับ Typescript.
ฉันได้พยายามใช้ preventDefault() เมื่อ event.keycode === 13 บน ng-keydown ในช่องป้อนข้อมูล typeahead แล้ว ng-keydown จะตรวจจับการกดปุ่ม enter ได้ แต่ไม่มีวิธีหยุด typeahead จากการเลือกองค์ประกอบนั้น
ฉันจำเป็นต้องปิดการฟัง typeahead เมื่อกด Enter หรืออะไรบางอย่างไหม?
คำตอบ #1
คุณได้ลองใช้กับองค์ประกอบ input หรือองค์ประกอบ form หรือยัง?
สำหรับฉัน มันใช้ได้เมื่อฉันรัน:
$ ('form').on('submit', function(e) {event.preventDefault();}); แต่อย่างไรก็ตามฉันแนะนำให้ใช้ตัวเลือกที่เฉพาะเจาะจงมากขึ้น ;)
หรือคุณสามารถทำมันบนฟิลด์ input แต่คุณจำเป็นต้องป้องกันการแพร่กระจายของอีเวนต์ preventDefault จะป้องกันเพียงพฤติกรรมปกติของอีเวนต์เท่านั้น - ในกรณีของ input คือการอัปเดตค่าของมัน สิ่งที่คุณต้องการทำคือหยุดการส่งฟอร์ม ดังนั้นคุณจำเป็นต้องหยุดการแพร่กระจายของอีเวนต์
นี่คือโค้ดตัวอย่างที่ควรใช้ได้สำหรับการป้อนข้อมูล:
$('#demo-input').on('keydown', function(e) {
if (e.keyCode === 13) {
return false
}
});
เมื่อใช้ jQuery การใช้ return false ในตัวจัดการเหตุการณ์มีผลเหมือนกับการเรียก e.preventDefault() และ e.stopPropagation().
