Чтобы игнорировать эти ключи, вам необходимо добавить условие перед проверкой ввода.
Например, вы можете создать массив, содержащий список всех KeyCodes, которые вы хотите игнорировать, и просто проверить, не является ли введенный ключ одним из них.
Вот что вам нужно:
document.getElementById('input-field').addEventListener('keypress', function(e) {
//An array of special Keys
var specialKeys = [37, 38, 39, 40, 8, 13, 27, 46];
if (specialKeys.indexOf(e.which) === -1) {
console.log(String.fromCharCode(e.which)+ ' Key is validated!');
if (!String.fromCharCode(e.which).match(/[A-Za-z0-9,]/)) {
event.preventDefault();
}
}
});
<input type="text" id="input-field" placeholder="input text here">
Заметка:
Как уже упоминалось в комментариях, вам нужно использовать keypress
событие вместо того, keyup
чтобы немедленно проверять каждый введенный символ.