Inicio·Códigos de tecla

code y keyCode de 120 teclas

Los valores que entrega un KeyboardEvent. code es la posición física y no cambia con la distribución; key es lo que se escribe, y eso sí cambia.

code frente a key

code es la posición física, igual en un teclado coreano o francés. key es lo que se escribe y cambia: el mismo sitio da a, A o ㅁ. Usa code para saber qué sitio se pulsó y key para saber qué se escribió.

keyCode quedó fuera del estándar. Escribe código nuevo con code o key; los números de aquí sirven para leer código antiguo.

Letras26

La posición está fijada como KeyA. Aunque se escriba un ㅁ coreano, el code sigue siendo KeyA.

Dígitos10

La fila de números. Sus keyCode difieren de los mismos dígitos del teclado numérico.

Signos12

Aquí es donde los valores de keyCode se separan entre navegadores.

Teclado numérico16

location vale 3, y eso lo distingue de la fila de números.

Teclas F20

F1 es 112, F2 es 113, y así en orden.

Navegación8

No escriben nada; solo mueven el cursor.

Edición6

Borrar, insertar, saltar de línea.

Modificadoras8

Solas no hacen nada y se montan sobre otras. Izquierda y derecha comparten keyCode.

Bloqueos3

Se pulsan una vez y el estado queda cambiado.

Sistema4

Teclas que tratan con ventanas y pantalla.

Método de entrada7

Teclas que cambian el método de entrada: hangul, hanja y las de conversión japonesa.

Cómo leerlo

  • code es la posición y key el carácter escrito. Para atajos, compara con code.
  • keyCode está obsoleto; úsalo solo para leer código antiguo.
  • Shift izquierdo y derecho comparten keyCode y se distinguen por location.
  • El 1 de la fila y el 1 del teclado numérico son teclas distintas: 49 y 97.

Preguntas frecuentes

Q. ¿Debo usar code o key?

code cuando necesitas la posición, como en los atajos; key cuando necesitas lo que se escribió. code sobrevive a un cambio de distribución.

Q. ¿Por qué evitar keyCode?

Se retiró del estándar y los navegadores no coinciden en los valores, sobre todo en los signos.

Q. ¿Cuál es el código de Enter?

keyCode 13, code Enter. El Enter del teclado numérico tiene code NumpadEnter pero el mismo keyCode 13.

Q. ¿Cómo distingo Shift izquierdo de derecho?

Por keyCode no: ambos son 16. Usa code (ShiftLeft, ShiftRight) o location (1, 2).

Q. ¿El code es igual en un teclado coreano?

Sí. Pulsar el sitio que escribe ㅁ sigue dando KeyA, porque code nombra la posición.