Código da tecla Caps Lock em JavaScript

Para Caps Lock, event.key é CapsLock, event.code é CapsLock e o obsoleto keyCode é 20. Pressione qualquer tecla no Key Code Finder para ver esses valores em tempo real.

Atualizado em

PropriedadeValor
event.keyCapsLock
event.codeCapsLock
event.keyCode / which (obsoleto)20

Como detectar a tecla Caps Lock

document.addEventListener('keydown', (event) => {
  if (event.key === "CapsLock") {
    // Caps Lock 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 estão obsoletos: ainda funcionam, mas seus valores variam entre navegadores e layouts.

Como os navegadores tratam a tecla Caps Lock

Para avisar o usuário de que o Caps Lock está ativado em um campo de senha, verifique event.getModifierState("CapsLock") em qualquer evento de tecla — ele informa o estado da trava, não apenas dessa tecla.

No React

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

Perguntas frequentes

Qual é o keyCode da tecla Caps Lock?
20. Ele está obsoleto, porém: use event.key (“CapsLock”) ou event.code (CapsLock) em código novo.
Qual é a diferença entre event.key e event.code?
event.key é o caractere ou a ação que a tecla produz com o layout atual; event.code é a posição física da tecla, a mesma em qualquer layout.
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.