whichAtributo de evento

事件对象参考手册Objeto de evento

Ejemplo

Obtener el valor Unicode de la tecla presionada:

var x = event.which;

xEl resultado es:

119 // 119 es el carácter "w"

Pruébalo »

Este artículo contiene más ejemplos al final.


Definición y uso

El atributo which devuelveonkeypressel código de carácter del valor de la tecla que disparó el evento, oonkeydownoonkeyupel código de la tecla del evento.

La diferencia entre los dos tipos de código es:

  • Código de carácter: un número que representa un carácter ASCII
  • Código de teclado: un número que representa la tecla real en el teclado

Los valores de los dos tipos no son siempre iguales. Por ejemplo, la letra minúscula "w" y la mayúscula "W" tienen el mismo código de teclado, porque están en la misma tecla (el código de "W" es "87"), pero tienen códigos de carácter diferentes, y la salida de los dos caracteres no es la misma (los códigos de carácter de "w" y "W" son "119" y "87"). Consulta los siguientes ejemplos para entenderlo mejor.

Consejo:Si necesitas saber si el usuario presionó una tecla de impresión (como "a" o "5"), se recomienda usar el evento onkeypress. Si necesitas saber si el usuario presionó una tecla de función (como "F1", "CAPS LOCK" o "Home"), puedes usar los eventos onkeydown u onkeyup.

Nota:IE8 y versiones anteriores no admiten el atributo which. Los navegadores que no lo admiten pueden usarkeyCodeel atributo. Sin embargo, el atributo keyCode no es válido en el evento onkeypress del navegador Firefox. Para compatibilidad con estos navegadores, puedes usar el siguiente código:

var x = event.which || event.keyCode; // usarwhichokeyCode, así se admite en diferentes navegadores

Consejo:La lista completa de caracteres Unicode se puede consultar en nuestroManual de referencia completo de Unicode。

Consejo:Si necesitas convertir un valor Unicode a un carácter, puedes usarfromCharCode()el método.

Nota:Esta propiedad es de solo lectura.

Nota:Las propiedades which y keyCode ofrecen una forma de resolver la compatibilidad entre navegadores. Las versiones más recientes de DOM Events recomiendan usarkeyel atributo en lugar de este método.

Consejo:Si deseas verificar si se presionó la tecla "ALT", "CTRL", "META" o "SHIFT", puedes usaraltKey, ctrlKey, metaKeyoshiftKeyel atributo.


Compatibilidad del navegador

Los números en la tabla indican la versión del primer navegador que admite esta propiedad.

Atributo
which Yes 9.0 Yes Yes Yes


Sintaxis

event.which

Detalles técnicos

Valor de retorno: Un número que representa el código de carácter Unicode o el código de tecla Unicode.
Versión de DOM: DOM Level 2 Events


实例

Más ejemplos

Ejemplo

Usa onkeypress y onkeydown para demostrar la diferencia entre el código de carácter y el código de teclado:

<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)">

function uniCharCode(event) {
    var char = event.which || event.keyCode; // event.keyCode se usa para IE8 y versiones anteriores
    document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}

function uniKeyCode(event) {
    var key = event.which || event.keyCode; // event.keyCode se usa para IE8 y versiones anteriores
    document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}

Cuando se presiona la tecla "a" (sin Bloq Mayús), el resultado es el siguiente:

Código de carácter Unicode: 97
Código de teclado Unicode: 65

Pruébalo »

Ejemplo

Si se presiona la tecla Esc, se muestra un mensaje:

<input type="text" onkeydown="myFunction(event)">

function myFunction(event) {
    var x = event.which || event.keyCode; // event.keyCode se usa para IE8 y versiones anteriores
    if (x == 27) {  // 27 es la tecla ESC
        alert ("You pressed the Escape key!");
    }
}

Pruébalo »

Ejemplo

Convierte un valor Unicode a un carácter (no funciona para teclas de función):

var x = event.which || event.keyCode;   // Obtener el valor Unicode
var y = String.fromCharCode(x);         // Convertir el valor a carácter

Pruébalo »


Páginas relacionadas

Manual de referencia de HTML DOM:Atributo de evento key

Manual de referencia de HTML DOM:Atributo de evento keyCode

Manual de referencia de HTML DOM:Atributo de evento charCode

事件对象参考手册Objeto de evento

Otras extensiones