keydown

O evento keydown é disparado quando uma tecla é pressionada. Diferente do evento keypress, o keydown é disparado para teclas que produzem e que não produzem um caractere.

Informações gerais

Especificação

DOM L3

Interface

KeyboardEvent (en-US)

Burbulha

Sim

Cancelável

Sim

Alvo

Document, Element

Ação Padrão

Variações: evento keypress; carrega sistema de composição de texto; eventos blur e focus; evento DOMActivate; outro evento

Propriedades

Propriedade Tipo Descrição
target Somente leitura EventTarget O alvo do evento (o alvo de nível mais alto na árvore DOM).
type Somente leitura DOMString O tipo do evento.
bubbles Somente leitura Boolean Se o evento normalmente burbulha ou não
cancelable Somente leitura Boolean Se o evento é cancelável ou não
view Somente leitura WindowProxy document.defaultView (window do documento)
detail Somente leitura long (float) 0.
target Somente leitura EventTarget (elemento DOM) Elemento focado processando o evento, elemento raiz se nenhum elemento input adequado está focado.
char Somente leitura DOMString (string) O caractere correspondente à tecla. Se a tecla corresponde a um caractere imprimível, este valor é uma string Unicode não vazia, contendo o caractere. Se a tecla não tem uma representação imprimível, o valor é uma string vazia. Veja key names and char values (en-US) para detalhes.
Nota: Se a tecla for usada como uma macro que insere múltiplos caracteres, o valor deste atributo é toda a string, não apenas o primeiro caractere.
key Somente leitura DOMString (string) O valor da tecla pressionada. Se a tecla tem uma representação imprimível, o valor deste atributo é o mesmo do atributo char. Caso contrário, é uma das strings key especificadas em Key Values (en-US). Se a tecla não pode ser identificada, o valor do atributo é a string "Unidentified". Veja key names and char values (en-US) para detalhes. Somente Leitura.
code Somente leitura DOMString (string) Mantém uma string que identifica a tecla física sendo pressionada. O valor não é afetado pelo layout atual do teclado ou estado de modificador, portando uma tecla particular sempre retornará o mesmo valor.
charCode Somente leitura Unsigned long (int) O número de referência Unicode da tecla; este atributo é usado somente pelo evento keypress (en-US). Para teclas cujo atributo char contém múltiplos caracteres, este é o valor Unicode do primeiro caractere daquele atributo.
Aviso: Este atributo está obsoleto; você deve usar char no lugar, se disponível.
keyCode Somente leitura Unsigned long (int) Um código numérico, dependente do sistema e da implementação, identificando o valor não modificado da tecla pressionada. Este é usualmente o código decimal ASCII (RFC 20) ou código Windows 1252 correspondente à tecla; veja Virtual key codes para uma lista de valores comuns. Se a tecla não pode ser identificada, este valor é 0.
Aviso: Este atributo está obsoleto; você deve usar key no lugar, se disponível.
which Somente leitura Unsigned long (int) Um código numérico, dependente do sistema e da implementação, identificando o valor não modificado da tecla pressionada; este é usualmente o mesmo que keyCode.
Aviso: Este atributo está obsoleto; você deve usar key no lugar, se disponível.
location Somente leitura long (float) A localização da tecla no dispositivo.
repeat Somente leitura boolean true se a tecla foi pressionada tempo suficiente para disparar repetição de tecla, false caso contrário.
locale Somente leitura string O código do idioma para o evento, se disponível; uma string vazia caso contrário.
ctrlKey Somente leitura boolean true se a tecla control estava pressionada quando o evento foi disparado. false caso contrário.
shiftKey Somente leitura boolean true se a tecla shift estava pressionada quando o evento foi disparado. false caso contrário.
altKey Somente leitura boolean true se a tecla alt estava pressionada quando o evento foi disparado. false caso contrário.
metaKey Somente leitura boolean true se a tecla meta estava pressionada quando o evento foi disparado. false caso contrário.

preventDefault() do evento keydown

Iniciando com o Gecko 25, uma chamada para o método preventDefault() do evento keydown evita dispachar o evento keypress seguinte. Este é um comportamento válido para a especificação D3E e os principais navegadores web se comportam desta forma. Por outro lado, o Gecko 24 e anteriores dispachavam o evento keypress mesmo que o método preventDefault() do evento keydown anterior fosse chamado, embora o atributo defaultPrevented do evento keypress fosse true neste caso.

Eventos Relacionados

Exemplo

<!DOCTYPE html>
<html>
<head>
<script>

'use strict';

document.addEventListener('keydown', (event) => {
  const keyName = event.key;
  alert('keydown event\n\n' + 'key: ' + keyName);
});

</script>
</head>
<body>
</body>
</html>