Przechwyć klawisz Enter Wciśnięty w dowolnym miejscu strony

87

Muszę uchwycić naciśnięcie klawisza Enter w dowolnym momencie w dowolnym miejscu na stronie logowania. Zainicjuje próbę logowania.

Używając jQuery, jak mógłbym to osiągnąć? Czy powinienem połączyć to z tagiem body?

Adam
źródło

Odpowiedzi:

146
$(document).keypress(function(e) {
  if(e.which == 13) {
    // enter pressed
  }
});
sje397
źródło
5
Próbowałem tego i zauważyłem, że naciśnięcie klawisza nie jest wyzwalane dla klawiszy strzałek, ale klawisz w dół jest!
akotian
@akotian: To prawda! Ale podoba mi się wcześniejszy, pełniejszy opis naciśnięcia klawisza i opadnięcia klawisza z odpowiedzi canoe.
HoldOffHunger
30

Zdarzenie keydown jest uruchamiane po naciśnięciu klawisza.
Zdarzenie keypress jest uruchamiane, gdy klawisz jest wciśnięty, a ten klawisz zwykle generuje wartość znakową.

$(document).keydown( function(event) {
  if (event.which === 13) {
    // login code here
  }
}); 
kajak
źródło
1
To działa lepiej niż keypress. Na przykład mogłem keypress wykryć, kiedy został naciśnięty klawisz ESC. Ale keydowndziała doskonale. Dziękuję Ci!
Laszlo the Wiz