Código de la tecla Enter en JavaScript

Para Enter, event.key es Enter, event.code es Enter / NumpadEnter y el obsoleto keyCode es 13. Pulsa cualquier tecla en el Buscador de códigos de tecla para ver sus valores en tiempo real.

Actualizado el

PropiedadValor
event.keyEnter
event.codeEnter / NumpadEnter
event.keyCode / which (obsoleto)13

Cómo detectar Enter

document.addEventListener('keydown', (event) => {
  if (event.key === "Enter" && !event.isComposing) {
    // Enter was pressed
  }
});

Usa event.key para reaccionar según el significado de la tecla (depende de la distribución del teclado) y event.code para su posición física, por ejemplo WASD en juegos. keyCode y which están obsoletos: siguen funcionando, pero sus valores varían entre navegadores y distribuciones.

Cómo tratan los navegadores la tecla Enter

Enter envía un formulario cuando el foco está en un campo de texto, y activa botones y enlaces. Comprueba event.isComposing: mientras alguien escribe en chino, japonés o coreano, Enter confirma la composición y no debería disparar tu acción. El Enter del teclado numérico tiene el mismo key, pero code NumpadEnter.

En React

<input onKeyDown={(e) => { if (e.key === "Enter") { /* … */ } }} />

Preguntas frecuentes

¿Cuál es el keyCode de Enter?
13. Está obsoleto, sin embargo: en código nuevo usa event.key (“Enter”) o event.code (Enter).
¿Cuál es la diferencia entre event.key y event.code?
event.key es el carácter o la acción que produce la tecla con la distribución actual; event.code es la posición física de la tecla, igual en todas las distribuciones.
¿Debo usar keydown o keypress?
keydown. El evento keypress está obsoleto y no se dispara con teclas que no producen caracteres, como Escape o las flechas.