Я пытаюсь сделать поле ввода номера телефона только числовым (0-9). Я использую ключ jQuery, чтобы сделать это возможным с помощью этого кода.
$("#phonenumber").keydown(function (e) {
if (!(e.key.replace(/[^0-9]/g, "") === "" && e.key != "Backspace" && e.key != "Delete")) {
//I added Backspace and Delete so I can use those keys.
return;
} else {
e.preventDefault();
return false;
}
});
Это работает с компьютерами и устройствами iPhone. Однако в устройствах Android он может отклонять только алфавиты и некоторый специальный символ НО, который может проходить через некоторые из них! Я попытался тревога()e.key, и он возвращает Неопознанный, когда я пытался ввести с помощью специального символа. Я попытался добавить его на свой если условие, но e.preventDefault () и вернуть ложь не работают. И когда я пытался $ ('# номер телефона'). val (), он был пустым, но там был специальный символ вроде этого.
e.key! = "Backspace" && e.key! = "Удалить" работает только с Windows и iPhone. Андроид тоже возвращает backspace как Неопознанный.
Как я могу это решить? Спасибо!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


вы можете использовать этот код, чтобы найти ключевой код в вашем мероприятии
let key_code = ev.keyCode || ev.which;
и вы можете увидеть список кодов клавиш по этой ссылке:
https://css-tricks.com/snippets/javascript/javascript-keycodes/#article-header-id-1
Попробуйте keyUp вместо keyDown
Привет, но это возвращает только ключ Неопознанный в 0.