KeyboardEvent qué propiedad
Ejemplo
Obtenga el valor Unicode de la tecla del teclado presionada:
var x = event.which;
Más ejemplos de "Pruébelo usted mismo" a continuación.
Definición y uso
La propiedad which devuelve el código de carácter Unicode de la tecla que activó el evento onkeypress , o el código de tecla Unicode de la tecla que activó el evento onkeydown o onkeyup .
La diferencia entre los dos tipos de código:
- Códigos de caracteres: un número que representa un carácter ASCII
- Códigos de tecla: un número que representa una tecla real en el teclado
Estos tipos no siempre significan lo mismo; por ejemplo, una "w" minúscula y una "W" mayúscula tienen el mismo código de teclado, porque la tecla que se presiona en el teclado es la misma (solo "W" = el número "87"), pero diferente. código de carácter porque el carácter resultante es diferente (ya sea "w" o "W", que es "119" o "87"). Consulte "Más ejemplos" a continuación para comprenderlo mejor.
Sugerencia: para averiguar si el usuario está presionando una tecla imprimible (por ejemplo, "a" o "5"), se recomienda utilizar esta propiedad en el evento onkeypress. Para averiguar si el usuario está presionando una tecla de función (por ejemplo, "F1", "BLOQ MAYÚS" o "Inicio"), use el evento onkeydown o onkeyup.
Nota: la propiedad which no es compatible con IE8 y versiones anteriores. Para estas versiones de navegador, puede usar la propiedad keyCode . Sin embargo, la propiedad keyCode no funciona en el evento onkeypress en Firefox. Para una solución de navegador cruzado, puede usar el siguiente código:
var x = event.which || event.keyCode; // Use either which or keyCode, depending on browser support
Sugerencia: para obtener una lista de todos los caracteres Unicode, estudie nuestra Referencia completa de Unicode .
Sugerencia: si desea convertir el valor Unicode devuelto en un carácter, utilice el método fromCharCode() .
Nota: Esta propiedad es de solo lectura.
Nota: Tanto la propiedad which como keyCode se proporcionan solo por compatibilidad. La última versión de la especificación de eventos DOM recomienda usar la propiedad clave en su lugar (si está disponible).
Sugerencia: si desea averiguar si se presionó la tecla "ALT", "CTRL", "META" o "SHIFT" cuando ocurrió un evento clave, use la propiedad altKey , ctrlKey , metaKey o shiftKey .
Compatibilidad con navegador
Los números de la tabla especifican la primera versión del navegador que es totalmente compatible con la propiedad.
Property | |||||
---|---|---|---|---|---|
which | Yes | 9.0 | Yes | Yes | Yes |
Sintaxis
event.which
Detalles técnicos
Valor de retorno: | Un número, que representa un código de carácter Unicode o el código clave Unicode |
---|---|
Versión DOM: | Eventos de nivel 2 de DOM |
Más ejemplos
Ejemplo
Usando onkeypress y onkeydown para demostrar las diferencias entre códigos de caracteres y códigos de teclado:
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)">
function uniCharCode(event) {
var char = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}
function uniKeyCode(event) {
var key = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}
Al presionar la tecla "a" en el teclado (sin usar el bloqueo de mayúsculas), el resultado de char y key será:
Unicode CHARACTER code: 97
Unicode KEY code: 65
Ejemplo
Alerta algún texto si el usuario presiona la tecla Escape:
<input type="text" onkeydown="myFunction(event)">
function myFunction(event) {
var x = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
if (x == 27) { // 27 is the ESC key
alert ("You pressed the Escape key!");
}
}
Ejemplo
Convierta el valor Unicode en un carácter (no funciona para las teclas de función):
var x = event.which || event.keyCode; // Get the Unicode value
var y = String.fromCharCode(x); // Convert the value into a character
páginas relacionadas
Referencia HTML DOM: propiedad de la tecla KeyboardEvent
Referencia HTML DOM: KeyboardEvent keyCode Propiedad
Referencia HTML DOM: KeyboardEvent charCode Propiedad