831 Stimmen

Wie kann ich erkennen, Drücken der Eingabetaste auf der Tastatur mit jQuery?

Ich würde gerne erkennen, ob der Benutzer die Taste Enter mit jQuery.

Wie ist das möglich? Ist dafür ein Plugin erforderlich?

Es sieht so aus, als müsste ich die keypress() método.

Gibt es Browser-Probleme mit diesem Befehl - z. B. Probleme mit der Browserkompatibilität, über die ich Bescheid wissen sollte?

1501voto

Paolo Bergantino Punkte 465120

Der Sinn von jQuery besteht darin, dass man sich keine Gedanken über Browserunterschiede machen muss. Ich bin mir ziemlich sicher, dass Sie sicher mit enter 13 in allen Browsern sein. Mit diesem Gedanken im Hinterkopf können Sie also Folgendes tun:

$(document).on('keypress',function(e) {
    if(e.which == 13) {
        alert('You pressed enter!');
    }
});

143voto

Andrea Punkte 1778

Ich habe ein kleines Plugin geschrieben, um die Bindung des Ereignisses "on enter key pressed" zu erleichtern:

$.fn.enterKey = function (fnc) {
    return this.each(function () {
        $(this).keypress(function (ev) {
            var keycode = (ev.keyCode ? ev.keyCode : ev.which);
            if (keycode == '13') {
                fnc.call(this, ev);
            }
        })
    })
}

Verwendung:

$("#input").enterKey(function () {
    alert('Enter!');
})

71voto

Ian Roke Punkte 1724

Ich konnte den von @Paolo Bergantino geposteten Code nicht zum Laufen bringen, aber als ich ihn in $(document) y e.which anstelle von e.keyCode dann habe ich festgestellt, dass es einwandfrei funktioniert.

$(document).keypress(function(e) {
    if(e.which == 13) {
        alert('You pressed enter!');
    }
});

Link zum Beispiel auf JS Bin

56voto

jesal Punkte 7504

Ich habe festgestellt, dass dies besser mit allen Browsern kompatibel ist:

$(document).keypress(function(event) {
    var keycode = event.keyCode || event.which;
    if(keycode == '13') {
        alert('You pressed a "enter" key in somewhere');    
    }
});

44voto

Nasruddin Punkte 1490

Sie können dies mit dem jQuery-Ereignishandler "keydown" tun:

$("#start").on( "keydown", function(event) {
  if(event.which == 13)
     alert("Entered!");
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X