Я пытаюсь создать пользовательский ввод текста для телефонных номеров, который принимает только числа и символ плюса (+); все остальные символы должны быть отброшены и не показаны в поле.
Я пытаюсь сделать это с помощью обработчика событий (onkeydown/onkeypress) и отбрасывания входов, соответствующих другим клавишам. Однако я не могу понять, как это сделать. Вот подходы, которые я пробовал и не работаю:
-
Используя событие onkeypress и посмотрите на event.key, чтобы выяснить, какой ключ был нажат: не работает в Chrome (см. http://caniuse.com/keyboardevent-key). Есть ли способ обхода браузера?
-
Использование события onkeycode и просмотр event.keyCode: не работает, когда нам нужно нажимать несколько клавиш для печати символа (например, для раскладки клавиатуры на английском языке требуется нажать Shift и = дать +). Кроме того, он позволяет отображать символы, такие как! @# $% & *(), поскольку они появляются при нажатии Shift и числа. (Это подход, используемый в JavaScript-кодовом коде, разрешает только число и плюс символ, но мне это не очень помогает;))
-
Используя атрибут HTML-шаблона:, на самом деле это не мешает людям писать то, что им нравится.
Спасибо!