ในช่วงสองวันที่ผ่านมาเราได้ทำฟังก์ชั่นที่ต้องมีการตรวจสอบอินพุตกล่องข้อความแบบเรียลไทม์และเราได้พบปัญหาคลื่นไส้ที่วิธีการป้อนข้อมูลจีนไม่สามารถกระตุ้นเหตุการณ์ onkeyup ได้
การรวมตัวเฉพาะมีดังนี้:
เมื่อฟังเหตุการณ์คีย์อัพอินพุตวิธีการป้อนข้อมูลภาษาอังกฤษสามารถตรวจจับการเปลี่ยนแปลงในค่ากล่องข้อความผ่านเหตุการณ์ KeyUp ในเวลาจริง อย่างไรก็ตามเมื่อวิธีการอินพุตกลายเป็นภาษาจีนเหตุการณ์คีย์อัพอินพุตจะไม่ถูกเรียกใช้ตามปกติ นี่เป็นวิธีการเขียนก่อนหน้านี้
<html> <head> <script type = "text/javascript" src = "// www.vevb.com/static/js/jquery-1.4.2.min.js"> </script> </head> <body> <p> ใช้กุญแจสำคัญในการตรวจจับเนื้อหากล่องข้อความ autocomplete = "ปิด"/> <span id = "keyup_s"> </span> <script type = "text/javaScript"> $ ('#keyup_i'). bind ('keyup', function () {$ ('#keyup_s') ข้อความ ($ (this) .val ());อย่างที่คุณเห็นการเขียนนี้พบปัญหาที่จีนไม่สามารถเรียกเหตุการณ์ Keyup ได้ ดังนั้นฉันจึงมองหาทางออก ฉันจำได้ว่าแถบค้นหาใน Baidu ดูเหมือนจะไม่มีปัญหาดังนั้นฉันจึงเริ่มดู JS ของ Baidu JS ของ Baidu นั้นน่าเกลียด ... วิธีนี้มีชื่อเป็นตัวอักษรและในที่สุดฉันก็พบว่ามันอาจใช้การหมดเวลาเป็นตัวจับเวลาเพื่อตรวจสอบการปรับเปลี่ยนกล่องอินพุตเป็นประจำ ไม่พอใจกับวิธีนี้มากนัก ดังนั้นฉันจึงยังคงมองหาทางออกที่ดีกว่าดังนั้นฉันจึงพบสองเหตุการณ์: OnInput และ OnPropertyChange
OnInput มีให้บริการภายใต้ Firefox ในขณะที่ OnPropertyChange มีให้บริการภายใต้ IE มีความแตกต่างระหว่างสองวิธี
OnInput สามารถตรวจจับการเปลี่ยนแปลงในค่าคุณสมบัติในขณะที่ OnPropertyChange สามารถตรวจจับการเปลี่ยนแปลงในคุณสมบัติทั้งหมดที่มีค่า ดังนั้นมันจึงเริ่มเปลี่ยนไปเป็นสิ่งนี้
<html> <head> <script type = "text/javaScript" src = "// www.vevb.com/static/js/jquery-1.4.2.min.js"> </script> </head> <body> <p> ใช้ oninput และ onpropertychange id = "inputorp_i" autocomplete = "ปิด"/> <span id = "inputorp_s"> </span> <script type = "text/javascript"> // ก่อนกำหนดว่าเบราว์เซอร์เป็นเช่น Vicious IE ไม่มีวิธีเขียนอะไรเช่น IE var bind_name = 'อินพุต'; if (navigator.useragent.indexof ("msie")! = -1) {bind_name = 'propertyChange'; } $ ('#inputorp_i'). bind (bind_name, function () {$ ('#inputorp_s') ข้อความ ($ (this) .val ());})ปัญหาได้รับการแก้ไขแล้ว