Cuando se KeyboardEvent
dispara, puede probar qué tecla se presionó porque ese evento contiene información contra la que puede escribir lógica.
document.addEventListener("keydown", function(event) ( console.log(event.which); ))
Por ejemplo, al presionar "a", obtendrá 65
. Aparentemente, es mejor escribir lógica contra la cual, como keyCode y charCode son complicados:
La propiedad event.which normaliza event.keyCode y event.charCode. Se recomienda ver event.which para la entrada de teclas del teclado.
Y:
En un evento de pulsación de tecla, el valor Unicode de la tecla pulsada se almacena en la propiedad keyCode o charCode, nunca en ambas. Si la tecla presionada genera un carácter (por ejemplo, 'a'), charCode se establece en el código de ese carácter, respetando el caso de la letra. (es decir, charCode tiene en cuenta si se mantiene presionada la tecla shift). De lo contrario, el código de la tecla presionada se almacena en keyCode.
Herramienta de prueba
Vea el probador de Pen event.keyCode de Chris Coyier (@chriscoyier) en CodePen.
Valores de código clave
Aquí hay una tabla que contiene los valores de event.which
.
|
|
|
Zell Liew notó que 3 de estos códigos clave eran diferentes en Firefox que el resto de los navegadores
;
es 59 en Firefox pero 186 en otros navegadores.=
es 61 en Firefox pero 187 en otros navegadores.-
es 173 en Firefox pero 189 en otros navegadores.
Nota importante: estos valores de código clave solo son válidos durante los eventos in keydown
y keyup
. En Mac, los keypress
eventos le brindan un conjunto de códigos completamente diferente.
Por ejemplo:
Llave | event.which en keydown | event.which en pulsación de tecla |
a | sesenta y cinco | 97 |
B | 66 | 98 |
C | 67 | 99 |