Código da tecla Control (Ctrl) em JavaScript

Para Control (Ctrl), event.key é Control, event.code é ControlLeft / ControlRight e o obsoleto keyCode é 17. Pressione qualquer tecla no Key Code Finder para ver os valores em tempo real.

Atualizado em

PropriedadeValor
event.keyControl
event.codeControlLeft / ControlRight
event.keyCode / which (obsoleto)17

Como detectar Control (Ctrl)

document.addEventListener('keydown', (event) => {
  if (event.key === 'Control') {
    // Control (Ctrl) was pressed
  }
});

Use event.key para reagir ao que a tecla significa (ela segue o layout do teclado) e event.code para a posição física dela, por exemplo WASD em jogos. keyCode e which são obsoletos: ainda funcionam, mas os valores variam entre navegadores e layouts.

Como os navegadores tratam Control (Ctrl)

Verifique event.ctrlKey para atalhos. No Mac, os usuários esperam Cmd: teste event.metaKey nesse caso, ou aceite os dois.

No React

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

Perguntas frequentes

Qual é o keyCode da tecla Control (Ctrl)?
17. Ele está obsoleto, porém: use event.key (“Control”) ou event.code (ControlLeft) em código novo.
Qual a diferença entre event.key e event.code?
event.key é o caractere ou ação que a tecla produz com o layout atual; event.code é a posição física da tecla, igual em todos os layouts.
Devo usar keydown ou keypress?
keydown. O evento keypress está obsoleto e não dispara para teclas que não produzem caracteres, como Escape ou as setas.