За последние два дня мы выполнили функцию, которая требует мониторинга ввода текстового поля в режиме реального времени, и мы столкнулись с проблемой тошноты, которую китайский метод ввода не может вызвать событие OnKeyup.
Конкретное проявление заключается в следующем:
При прослушивании события ввода клавиши метод ввода английского языка может обнаружить изменение значения текстового поля через событие Keyup в режиме реального времени. Однако, когда метод ввода становится китайским, событие ввода ключа не будет запускаться нормально. Это предыдущий способ написания.
<html> <Head> <script type = "text/javascript" src = "// www.vevb.com/static/js/jquery-1.4.2.min.js"> </script> </head> <body> <p> Используйте события ключа, чтобы определить контент текстового поля: </p> <p> <ptiny = " AutoCOMPLETE = "OFF"/> <span ID = "keyup_s"> </span> <script type = "text/javascript"> $ ('#keyup_i'). bind ('keyup', function () {$ ('#keyup_s'). Text ($ (this) .val ());}) </script> </p> </html> </html> </html> </ht>Как вы можете видеть, это написание сталкивается с проблемой, что китайцы не могут вызвать событие Keyup. Итак, я искал решение. Я вспомнил, что в подсказке поиска в Байду, казалось, не было проблем, поэтому я начал смотреть на JS Baidu. JS Baidu уродлив ... метод назван как буква, и, наконец, я обнаружил, что он, вероятно, использовал тайм -аут в качестве таймера для регулярного мониторинга модификации коробки ввода. Не очень доволен этим методом. Поэтому я продолжал искать лучшее решение, поэтому я нашел два события: oniunput и onpropertychange.
В Firefox доступен Iinput, в то время как 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, чтобы обнаружить содержание текстовых коробок: </p> <p> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <p> <p> <> <p> <> <> <p> <> <> <p> <p> <p> id = "inputorp_i" autocomplete = "off"/> <span id = "input_s"> </span> <script type = "text/javascript"> // сначала определить, является ли браузер порочным IE. Там нет способа написать что -то вроде IE. var bind_name = 'input'; if (navigator.useragent.indexof ("msie")! = -1) {bind_name = 'ProperateChange'; } $ ('#inputorp_i'). bind (bind_name, function () {$ ('#inputorp_s'). Text ($ (this) .val ());}) </script> </p> </body> </html>);Проблема была решена так.