En los últimos dos días, hemos realizado una función que requiere monitoreo en tiempo real de la entrada del cuadro de texto, y hemos encontrado el problema de las náuseas de que el método de entrada chino no puede activar el evento OnKeyUp.
La manifestación específica es la siguiente:
Al escuchar un evento de tecla de entrada, el método de entrada en inglés puede detectar el cambio en el valor del cuadro de texto a través del evento KeyUp en tiempo real. Sin embargo, cuando el método de entrada se convierte en chino, el evento de tecla de entrada no se activará normalmente. Esta es la forma anterior de escritura.
<html> <fead> <script type = "text/javaScript" src = "// www.vevb.com/static/js/jquery-1.4.2.min.js"> </script> </head> <body> <p> Use eventos clave para detectar contenido de cuadro de texto: </p> <p> <input type = "text" name = "keyup_i" id = "" "Id =" "ID de cuadro para detectar contenido de cuadro de texto: </p> <p> <input type =" text "name =" keyup_i "id =" "" "Id =" "Id =" "ID de cuadro de texto" autocomplete = "Off"/> <span id = "keyUp_s"> </span> <script type = "text/javascript"> $ ('#keyUp_i'). bind ('keyUp', function () {$ ('#keyUp_s'). Text ($ (this) .val ());}) </script> </p> </body> </html>Como puede ver, este artículo encuentra el problema de que los chinos no pueden activar el evento clave. Entonces busqué una solución. Recordé que el indicador de la barra de búsqueda en Baidu parecía no tener ningún problema, así que comencé a mirar el JS de Baidu. El JS de Baidu es feo ... El método se llama una letra, y finalmente descubrí que probablemente estaba usando TimeOut como temporizador para monitorear la modificación del cuadro de entrada regularmente. No muy satisfecho con este método. Así que seguí buscando una mejor solución, así que encontré dos eventos: OnInput y OnPropertyChange.
OnInput está disponible bajo Firefox, mientras que OnPropertyChange está disponible en IE. Hay algunas diferencias entre los dos métodos.
OnInput solo puede detectar cambios en el valor de la propiedad, mientras que OnPropertyChange puede detectar cambios en todas las propiedades que contienen el valor. Entonces comenzó a cambiar a esto.
<html> <fead> <script type = "text/javaScript" src = "// www.vevb.com/static/js/jquery-1.4.2.min.js"> </script> </head> <body> <p> Use en ININPUT y OnPropertyChange eventos para detectar el contenido de la casilla de texto: </p> <p> <p> <py tipo = "Nombre de texto" "Inyume id = "inputorp_i" Autocomplete = "Off"/> <span id = "inputorp_s"> </span> <script type = "text/javaScript"> // Primero determine si el navegador es un IE vicioso. No hay forma de escribir algo como es decir. var bind_name = 'input'; if (navigator.useragent.indexof ("msie")! = -1) {bind_name = 'PropertyChange'; } $ ('#inputorp_i'). bind (bind_name, function () {$ ('#inputorp_s'). Text ($ (this) .val ());}) </script> </p> </body> </html>El problema se ha resuelto así.