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>
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. –
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