Capture uma tecla Enter pressionada em qualquer lugar da página

87

Preciso capturar a tecla Enter a qualquer momento, em qualquer lugar em uma página de logon. Isso iniciará uma tentativa de logon.

Usando jQuery, como eu faria isso? E eu iria vinculá-lo à tag do corpo?

Adão
fonte

Respostas:

146
$(document).keypress(function(e) {
  if(e.which == 13) {
    // enter pressed
  }
});
sje397
fonte
5
Eu estava tentando fazer isso, e notei que o pressionamento de tecla não é acionado para as teclas de seta, mas a tecla pressionada sim!
Akotian
@akotian: Muito verdadeiro! Mas, gosto da descrição anterior mais completa de pressionamento de tecla vs. tecla descendente da resposta de canoa.
HoldOffHunger
30

O evento keydown é disparado quando uma tecla é pressionada.
O evento de pressionamento de tecla é disparado quando uma tecla é pressionada e essa tecla normalmente produz um valor de caractere.

$(document).keydown( function(event) {
  if (event.which === 13) {
    // login code here
  }
}); 
canoa
fonte
1
Isso funciona melhor do que keypress. Por exemplo, consegui keypress detectar quando a tecla ESC foi pressionada. Mas keydownfunciona perfeitamente. Obrigado!
Laszlo the Wiz de