2011-08-17 13 views
11

Uso de Internet Explorer en Windows Tengo un evento onkeypress que detecta el texto ingresado en un cuadro de texto. Sin embargo, al ingresar caracteres chinos, este evento no se dispara. ¿Alguien ha encontrado esto o tiene sugerencias sobre cómo solucionar esto?Caracteres chinos y el evento onkeypress

+1

¿Está utilizando un programa que inserta los caracteres de chinesse programáticamente y no un teclado estándar? –

+0

La forma en que lo hago es con un teclado latino para ingresar caracteres chinos usando la configuración regional china de Windows (escriba los sonidos y obtendrá los caracteres solicitados para la selección). – dlanod

+0

asegúrese de que tenga codificación utf-8 – RSM

Respuesta

3

Basado en este JSFiddle, parece que el evento keydown no se dispara como uno podría esperar. Usaría el evento keyup (aunque aún obtendrá caracteres parcialmente ingresados).

Desde mi experiencia, llegué:

  • Un evento para los "ni" en lugar de 你
  • Un evento '你 ha'
  • Un evento para 你 哈 (ya que la alerta mató a mi entrada para completar 'hao')

Básicamente, Windows y IE no están jugando muy bien con la entrada de caracteres. Sugeriría usar el evento change si es posible en su marco.

5

Google Suggest (autocomplete) sondea la entrada de cambios ya que los eventos son completamente poco confiables para Unicode. Los navegadores solían admitir eventos de entrada de IME intermedio, lo que fue muy bueno para los japoneses, pero el soporte se rompió rápidamente o se eliminó.

La última vez que revisé fue 2006, por lo que es necesario volver a realizar la prueba. Aquí están mis notas anteriores:

http://web.archive.org/web/20060220125639/http://fnjordy.cus.org.uk/auto/

incluyendo fallo no resuelto en Firefox:

https://bugzilla.mozilla.org/show_bug.cgi?id=286842

1

Dependiendo de la configuración del teclado, escribir un único carácter chino por lo general requiere escribir varias claves. Por ejemplo, 豈 puede escribirse usando una secuencia de 4 teclas (山 一口 廿), como se puede ver aquí: http://en.wiktionary.org/wiki/%E8%B1%88

Es necesario utilizar un evento onchange en este caso (y también para el coreano y japonés!)

Cuestiones relacionadas