Como detectar o Num Lock
document.addEventListener('keydown', (event) => {
if (event.key === "NumLock") {
// Num 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 são obsoletos: ainda funcionam, mas seus valores variam entre navegadores e layouts.
Como os navegadores tratam o Num Lock
Com o Num Lock desligado, o teclado numérico envia teclas de navegação (Home, End, setas) em vez de números. Verifique event.getModifierState("NumLock").
No React
<input onKeyDown={(e) => { if (e.key === "NumLock") { /* … */ } }} />Verificador de Keycode JavaScript
Pressione qualquer tecla e veja na hora todas as propriedades do evento de teclado, com um trecho keydown pronto para copiar para atalhos.