Использование <input type=number>
приведет к тому, что this.value
внутри прослушивателя событий вернет пустую строку, если вход не является допустимым числом. Вы можете увидеть пример этого в http://jsfiddle.net/fSy53/
Однако недопустимые символы все еще отображаются на входе.
Есть ли способ получить фактически отображаемое значение, включая недопустимые символы, из прослушивателя событий?
Моя конечная цель - не допустить, чтобы пользователи фактически вводили в поле какие-либо нечисловые символы. Мне нужно использовать type=number
, чтобы цифровая виртуальная клавиатура использовалась мобильными устройствами. Моя цель состояла бы в том, чтобы сделать что-то вроде this.value = this.value.replace(/[^0-9.]/g, "")
на keyup keypress
, но это не сработает, потому что, если введен неверный символ, чтение из this.value
возвращает ""
.