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?

Odpowiedzi:


146
$(document).keypress(function(e) {
  if(e.which == 13) {
    // enter pressed
  }
});

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
  }
}); 

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.