Ввод HTML, который принимает только цифры и символ +

Я пытаюсь создать пользовательский ввод текста для телефонных номеров, который принимает только цифры и символ плюс (+); все остальные символы должны быть отброшены и не показаны на поле.

Я пытаюсь сделать это, используя обработчик событий (onkeydown / onkeypress) и отбрасывая входные данные, соответствующие другим клавишам. Тем не менее, я не могу найти кросс-браузерный способ сделать это. Вот подходы, которые я пробовал и которые не работают:

Использование события onkeypress и просмотр event.key выяснить, какая клавиша была нажата: не работает в Chrome (см.http://caniuse.com/keyboardevent-key). Есть ли кросс-браузерный обход?

Используя событие onkeycode и глядя на event.keyCode: не работает, когда нам нужно нажать несколько клавиш для печати символа (например, английская раскладка клавиатуры требует нажатия Shift и =, чтобы дать +). Кроме того, он позволяет отображать такие символы, как! @ # $% ˆ & * (), так как они появляются при нажатии Shift и цифры. (Это подход, используемый вКод JavaScript разрешает использовать только цифры и символы плюс, но это мне не сильно помогает;))

Используя атрибут шаблона HTML: похоже, это не мешает людям писать то, что они чувствуют.

Спасибо!

Ответы на вопрос(7)

Ваш ответ на вопрос