คำถาม: กดปุ่ม Enter เมื่อป้อนข้อความในวิธีการป้อนข้อมูลภาษาจีน เหตุการณ์ Keyup ที่มีผลผูกพันจะป้อนข้อความภาษาอังกฤษในเมธอดอินพุตลงในกล่องข้อความและแตะปุ่มส่งโดยตรง
กิจกรรมแป้นพิมพ์:
เมื่อกดปุ่มหรือปล่อยออกมาอาจมีการเรียกใช้คีย์บอร์ดสามเหตุการณ์ในแต่ละเบราว์เซอร์
คีย์ดาวน์
การกดปุ่ม
การใส่กุญแจมือ
เหตุการณ์คีย์ดาวน์เกิดขึ้นเมื่อกดคีย์จากนั้นคีย์จะถูกเรียกใช้ เหตุการณ์ Keyup จะถูกเรียกใช้เมื่อคีย์ถูกปล่อยออกมา
วิธีการป้อนข้อมูลภาษาจีน:
FIRFOX: Keydown Trigger Input, ป้อนการยืนยัน Keyup Trigger INUCH
Chrome: อินพุตทริกเกอร์ keydown และ keyup, ป้อนเพื่อยืนยันว่าอินพุตจะทริกเกอร์ keydown เท่านั้น
IE: อินพุตทริกเกอร์คีย์ดาวน์และคีย์อัพให้ป้อนเพื่อยืนยันคีย์ดาวน์ทริกเกอร์อินพุตคีย์อัพคีย์อัพ
Safari: คีย์ดาวน์ทริกเกอร์อินพุตและคีย์อัพให้ป้อนเพื่อยืนยันคีย์ดาวน์ทริกเกอร์อินพุตคีย์อัพคีย์อัพ
โอเปร่า: คีย์ดาวน์ทริกเกอร์อินพุตและคีย์อัพให้ป้อนเพื่อยืนยันคีย์ดาวน์ทริกเกอร์อินพุต, คีย์อัพ
ในอินพุตและ textarea เมื่ออยู่ในวิธีการอินพุตภาษาจีน: ไม่มีการเรียกใช้คีย์นิด
เหตุการณ์ Keypress: การสนับสนุนวิธีการป้อนข้อมูลของจีนนั้นไม่ดีและไม่สามารถตอบสนองต่อการป้อนข้อมูลของจีนได้ ไม่สามารถตอบสนองต่อคีย์ฟังก์ชันระบบ
รหัส HTML:
<textarea name = "" id = "text" cols = "30" rows = "5"> </textarea> <script type = "text/javascript"> var text = document.getElementById ('text'); text.onkeydown = function (e) {console.log ('keydown'); if (e.keycode == 13) {console.log ('keydown enter send'); } console.log ('ค่า', text.value); } text.onkeypress = function (e) {console.log ('keypress'); console.log ('ค่า', text.value); } text.onkeyup = function (e) {console.log ('keyup'); if (e.keycode == 13) {console.log ('keyup enter send'); } console.log ('ค่า', text.value); } </script>วิธีการป้อนข้อมูลภาษาอังกฤษ:
ภาพด้านบนแสดงข้อสรุป:
Keydown และ Keypress เกิดขึ้นเมื่อข้อความไม่ได้พิมพ์ลงในกล่องอินพุต หากกล่องข้อความถูกส่งออกในเหตุการณ์ Keydown และ Keypress ข้อความในกล่องข้อความก่อนที่เหตุการณ์แป้นพิมพ์จะถูกทริกเกอร์
เมื่อเหตุการณ์ Keyup ถูกทริกเกอร์การดำเนินการของการป้อนข้อความในเหตุการณ์แป้นพิมพ์ทั้งหมดเสร็จสมบูรณ์และสิ่งที่ได้รับคือเนื้อหาข้อความหลังจากเหตุการณ์แป้นพิมพ์ถูกเรียกใช้
วิธีการป้อนข้อมูลภาษาจีน: [ไม่มีเหตุการณ์สำคัญ]
หลังจากกดปุ่ม Enter เพื่อยืนยัน:
วิธีการป้อนข้อมูลภาษาจีนกดปุ่ม ENTER เมื่อไม่ได้กำหนดอินพุต ผลของ Keydown และ Keyup นั้นแตกต่างกัน Keydown จะไม่ทริกเกอร์เหตุการณ์ Method ที่ตั้งไว้ล่วงหน้า
คำตอบ:
วิธีการป้อนข้อมูลส่วนใหญ่เสร็จสิ้นกระบวนการอินพุตในคีย์ดาวน์ดังนั้นหากการส่งอินพุตอยู่ในเหตุการณ์ KeyUp คีย์อินพุตจะถูกส่งโดยตรงไปยังคีย์อินพุตและคีย์อินพุตจะถูกส่งส่งผลให้เกิดปัญหาความขัดแย้ง
วิธีการ: เปลี่ยนเหตุการณ์การส่งอินพุตเป็น keydown ในเวลานี้เมื่อเหตุการณ์ Keydown เกิดขึ้นมันอยู่ในวิธีการป้อนข้อมูลและจะไม่เกิดขึ้นในเหตุการณ์การส่งของกล่องส่งดังนั้นจึงแก้ไขความขัดแย้ง
เคล็ดลับบางอย่าง:
หลังจากคีย์ดาวน์ถูกเรียกใช้คีย์อัพอาจไม่ถูกเรียกใช้ เมื่อกดปุ่มลงและลากเมาส์เหตุการณ์ Keyup จะไม่ถูกเรียกใช้
KeyPress ส่วนใหญ่ใช้เพื่อจับอักขระ ANSI ยกเว้น F1-12, Shift, Alt, Ctrl, Insert, Home, PGUP, DELETE, END, PGDN, ScrollLock, Pause, NumLock, {Menu Key}, { Start Key } และลูกศร
Keydown และ Keyup สามารถจับคีย์ทั้งหมดบนแป้นพิมพ์ได้ยกเว้น PRSCRN
KeyPress สามารถจับอักขระเดี่ยวได้เท่านั้น
Keydown และ Keyup สามารถจับชุดค่าผสมคีย์ได้
Keypress จับกรณีของอักขระตัวเดียว
Keydown และ Keyup เป็นทั้งค่าสำหรับ keyValue ที่จับโดยอักขระตัวเดียวซึ่งหมายความว่ากรณีของตัวละครตัวเดียวไม่สามารถตัดสินได้
Keypress ไม่ได้แยกความแตกต่างระหว่างอักขระตัวเลขจากแป้นพิมพ์หลัก
Keydown และ Keyup แยกแยะอักขระตัวเลขจากแป้นพิมพ์หลัก
ในหมู่พวกเขา Keypress คีย์ PRSCR, Keydown และ KeyUp ไม่สามารถจับได้
เมื่อใช้แป้นพิมพ์คุณมักจะใช้ฟังก์ชั่นการรวมคีย์คล้ายกับ Ctrl+Shift+Alt
บทความข้างต้นเกี่ยวกับการแก้ไขข้อขัดแย้งของวิธีการป้อนข้อมูลและคีย์ทางลัดสำหรับการส่งข้อความคือเนื้อหาทั้งหมดที่ใช้ร่วมกันโดยตัวแก้ไข ฉันหวังว่ามันจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น