2010-12-29 8 views
6

Decir que tengo una aplicación web que llama a la siguiente jQuery cada vez que un usuario pulsa una tecla en un área de texto con un ID de "txt":iPad, códigos de caracteres de JavaScript, y shiftKey

$('#txt').keydown(function(e) { 
console.log(e.which); // shows the keyCode 
console.log(e.shiftKey); 
} 

En un escritorio navegador, para caracteres como ( y 9, puedo distinguir entre los dos al verificar si la tecla Mayús se mantiene presionada (con e.shiftKey). Sin embargo, en Safari para iPad, no se requiere una tecla Mayús para escribir esos caracteres. Entonces, por ejemplo, al presionar ( y 9 en el teclado del iPad, se registra "57" en la consola para keyCode. El valor registrado para e.shiftKey siempre parece ser falso.

¿Cómo podría distinguir de manera confiable entre mecanografiar caracteres desplazados en el iPad? ¡Gracias por adelantado!

Respuesta

2

Podría intentar usar keyPress. en keyDown ambos 9 y ( tienen 57 pero en el evento keyPress tienen 9 : 57 y (: 40.

Esperanza esto ayuda también un vínculo útil http://notes.ericjiang.com/posts/333

O utilizar el event.charCode que devolverá el código ASCII.

Cuestiones relacionadas