Ich musste verhindern, dass nur bestimmte Eingaben übermittelt werden, also habe ich einen Klassenselektor verwendet, damit dies eine "globale" Funktion ist, wo immer ich sie brauche.
<input id="txtEmail" name="txtEmail" class="idNoEnter" .... />
Und dieser jQuery-Code:
$('.idNoEnter').keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault();
}
});
Alternativ dazu, wenn Keydown nicht ausreicht:
$('.idNoEnter').on('keypress keydown keyup', function (e) {
if (e.keyCode == 13) {
e.preventDefault();
}
});
Einige Anmerkungen:
In Abwandlung verschiedener guter Antworten hier, die Enter Taste scheint zu funktionieren für keydown
auf allen Browsern. Als Alternative habe ich Folgendes aktualisiert bind()
zum on()
Methode.
Ich bin ein großer Fan von Klassenselektoren und wäge alle Vor- und Nachteile sowie Leistungsdiskussionen ab. Meine Namenskonvention ist "idSomething", um anzuzeigen, dass jQuery es als id verwendet, um es von CSS-Styling zu trennen.