في اليومين الماضيين ، قمنا بوظيفة تتطلب مراقبة في الوقت الفعلي لإدخال مربع النص ، وقد واجهنا مشكلة الغثيان التي لا يمكن أن تؤدي طريقة الإدخال الصينية إلى إحداث حدث OnKeyup.
المظهر المحدد هو كما يلي:
عند الاستماع إلى حدث keyup إدخال ، يمكن أن تكتشف طريقة الإدخال باللغة الإنجليزية التغيير في قيمة مربع النص من خلال حدث keyup في الوقت الفعلي. ومع ذلك ، عندما تصبح طريقة الإدخال صينية ، فلن يتم تشغيل حدث keyup الإدخال بشكل طبيعي. هذه هي الطريقة السابقة للكتابة.
<html> <Head> <script type = "text/javaScript" src = "// www.vevb.com/static/js/jquery-1.4.2.min.js"> </script> </head> <p body> <p> استخدم keyup أحداث الكشف عن مربع النص: </p> <p> AutoComplete = "Off"/> <span id = "keyup_s"> </span> <script type = "text/javaScript"> $ ('#keyup_i'). bind ('keyup' ، function () {$ ('keyup_s'). text ($ (this) .val ()) ؛كما ترون ، واجهت هذه الكتابة المشكلة التي لا يمكن أن تؤدي الصينية إلى تشغيل حدث keyup. لذلك بحثت عن حل. تذكرت أن مطالبة شريط البحث في Baidu لا تواجه أي مشكلة ، لذلك بدأت في النظر إلى JS Baidu. Baidu's JS قبيح ... تم تسمية الطريقة كرسالة ، وأخيراً وجدت أنها ربما تستخدم Timeout كتوقيت لمراقبة تعديل مربع الإدخال بانتظام. غير راضٍ جدًا عن هذه الطريقة. لذلك واصلت البحث عن حل أفضل ، لذلك وجدت حدثين: 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> <pod> <p> استخدم oninput و OnpropertyChange Events conval: id = "inpectorp_i" autocomplete = "Off"/> <span id = "inputorp_s"> </span> <script type = "text/javaScript"> // أولاً تحديد ما إذا كان المتصفح هو is ae. لا توجد طريقة لكتابة شيء مثل IE. var bind_name = 'input' ؛ if (navigator.useragent.indexof ("msie")! = -1) {bind_name = 'propertyChange' ؛ } $ ('#inputorp_i'). bind (bind_name ، function () {$ ('#inputorp_s')تم حل المشكلة.