Erfassen einer Eingabetaste, die an einer beliebigen Stelle auf der Seite gedrückt wird

87

Ich muss jederzeit und überall auf einer Anmeldeseite einen Eingabetaste-Druck erfassen. Es wird ein Anmeldeversuch gestartet.

Wie würde ich dies mit jQuery erreichen? Und würde ich es mit dem Body-Tag verknüpfen?

Adam
quelle

Antworten:

144
$(document).keypress(function(e) {
  if(e.which == 13) {
    // enter pressed
  }
});
sje397
quelle
5
Ich habe dies versucht, was mir aufgefallen ist, dass der Tastendruck nicht für Pfeiltasten ausgelöst wird, sondern für die Tastenkombination!
Akotian
@akotian: Sehr wahr! Aber ich mag die frühere, ausführlichere Beschreibung von Tastendruck vs. Keydown aus der Antwort des Kanus.
HoldOffHunger
30

Das Keydown-Ereignis wird ausgelöst, wenn eine Taste gedrückt wird.
Das Tastendruckereignis wird ausgelöst, wenn eine Taste gedrückt wird und diese Taste normalerweise einen Zeichenwert erzeugt.

$(document).keydown( function(event) {
  if (event.which === 13) {
    // login code here
  }
}); 
Kanu
quelle
1
Das funktioniert besser als keypress. Zum Beispiel konnte ich keypress erkennen, wann die ESC-Taste gedrückt wurde. Funktioniert aber keydownperfekt. Danke dir!
Laszlo the Wiz