Browserübergreifende Lösung
Bei einigen älteren Browsern wurden Tastendruck-Ereignisse auf nicht standardisierte Weise implementiert.
KeyBoardEvent.key ist die Art und Weise, wie sie in modernen Browsern implementiert werden sollte.
which
und keyCode
sind heutzutage veraltet, aber es schadet nicht, trotzdem nach diesen Ereignissen zu suchen, damit der Code auch für Benutzer funktioniert, die noch ältere Browser wie IE verwenden.
En isKeyPressed
Funktion prüft, ob die gedrückte Taste Enter war und event.preventDefault()
verhindert, dass das Formular abgeschickt wird.
if (isKeyPressed(event, 'Enter', 13)) {
event.preventDefault();
console.log('enter was pressed and is prevented');
}
Minimales Arbeitsbeispiel
JS
function isKeyPressed(event, expectedKey, expectedCode) {
const code = event.which || event.keyCode;
if (expectedKey === event.key || code === expectedCode) {
return true;
}
return false;
}
document.getElementById('myInput').addEventListener('keydown', function(event) {
if (isKeyPressed(event, 'Enter', 13)) {
event.preventDefault();
console.log('enter was pressed and is prevented');
}
});
HTML
<form>
<input id="myInput">
</form>
https://jsfiddle.net/tobiobeck/z13dh5r2/