740 Stimmen

jQuery Event Keypress: Welche Taste wurde gedrückt?

Mit jQuery, wie finde ich heraus, welche Taste gedrückt wurde, wenn ich an das keypress-Ereignis binden?

$('#searchbox input').bind('keypress', function(e) {});

Ich möchte eine Übermittlung auslösen, wenn ENTER gedrückt wird.

[Update]

Auch wenn ich die (oder besser: eine) Antwort selbst gefunden habe, scheint es einen gewissen Spielraum für Variationen zu geben ;)

Gibt es einen Unterschied zwischen keyCode y which - vor allem, wenn ich nur auf der Suche nach ENTER der niemals ein Unicode-Schlüssel sein wird?

Bieten einige Browser die eine Eigenschaft und andere die andere?

4voto

Reid Evans Punkte 1465

Hier ist eine Jquery-Erweiterung, die das Drücken der Eingabetaste verarbeitet.

(function ($) {
    $.prototype.enterPressed = function (fn) {
        $(this).keyup(function (e) {
            if ((e.keyCode || e.which) == 13) {
                fn();
            }
        });
    };
}(jQuery || {}));

$("#myInput").enterPressed(function() {
    //do something
});

Ein funktionierendes Beispiel finden Sie hier http://jsfiddle.net/EnjB3/8/

4voto

Pedja Punkte 51

Fügen Sie ein verstecktes Eingabefeld hinzu, nicht versteckt, sondern einfach nur mit style="display:none". Hier ein Beispiel (unnötige Attribute aus dem Code entfernt).

<form>
  <input type="text">
  <input type="submit" style="display:none">
</form>

es akzeptiert die Eingabetaste von Haus aus, kein JavaScript erforderlich, funktioniert in jedem Browser.

3voto

manny Punkte 1748
$(document).bind('keypress', function (e) {
    console.log(e.which);  //or alert(e.which);

});

Sie sollten firbug haben, um ein Ergebnis in der Konsole zu sehen

3voto

Hitesh Modha Punkte 2642

Einige Browser verwenden keyCode, andere verwenden which. Wenn Sie jQuery verwenden, können Sie zuverlässig which verwenden, da jQuery die Dinge standardisiert. Eigentlich,

$('#searchbox input').bind('keypress', function(e) {
    if(e.keyCode==13){

    }
});

2voto

Am einfachsten ist es für mich:

$("#element").keydown(function(event) {
    if (event.keyCode == 13) {
        localiza_cep(this.value);
    }
});

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