Эта функция preventKey()
работает независимо от устаревших функций браузера.
Должно присутствовать только одно из трех свойств which
(устарело), keyCode
(устарело) или key
(проблемы в IE).
https://jsfiddle.net/tobiobeck/z13dh5r2/
JS
function preventKey(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 (preventKey(event, 'Enter', 13)) {
event.preventDefault();
}
});
HTML
<form>
<input id="myInput">
</form>
Тестирование браузера
Если вы хотите протестировать разные браузеры, прокомментируйте или раскомментируйте вручную одну из трех следующих event.something
строк:
var event = {};
event.which = 13;
//event.keyCode = 13;
//event.key = 'Enter'
if (preventKey(event, 'Enter', 13)) {
console.log('enter was pressed');
}