2012-04-11 7 views
5

Utilizo el evento keydown en jquery, pero el problema es que no tiene estado para el idioma de entrada. No se puede determinar si la entrada está en idioma inglés o en hebreo o árabe ...? devuelve solo el código clave, y no puedo obtener el carácter.en el evento de pulsación get charecter en otro idioma

¿Hay alguna solución?

+0

Hay un plugin jQuery para [determinar la configuración de idioma del navegador] (https://github.com/dansingerman/jQuery-Browser-Language). Ver [this] (http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference) SO thread. Luego puede averiguar el código del teclado del personaje que desea en cada idioma. –

+0

Creo que el complemento no resuelve el problema. el usuario puede cambiar el idioma durante el tipeo. entonces, no puedo obtener la entrada de carbonización correcta por usuario. – assaqqaf

Respuesta

5

Para determinar el carácter real, debe usar el evento keypress en lugar de . Mientras que keydown le proporciona un código de clave, keypress indica el carácter que ingresó el usuario.

Otra diferencia es que cuando el usuario presiona y mantiene presionada una tecla, se desencadena un evento keydown solo una vez, pero se activan eventos keypress separados para cada carácter insertado.

Aquí hay un ejemplo de cómo utilizar el evento keypress:

<body> 
<form> 
    <input id="target" type="text" /> 
</form> 

<script src="http://api.jquery.com/scripts/events.js"></script> 
<script> 
    $("#target").keypress(function(event) { 
    var charCode = event.which; // charCode will contain the code of the character inputted 
    var theChar = String.fromCharCode(charCode); // theChar will contain the actual character 
    }); 
</script> 
</body> 
+1

Esto funcionó para mí. Recogió los caracteres noruegos y luego los caracteres árabes después de cambiar el diseño del teclado (mientras permanecía en la página, sin recargar entre ellos). [Aquí hay un jsFiddle] (http://jsfiddle.net/wvywU/) –

Cuestiones relacionadas