Подтвердить что ты не робот

Получение значения ввода номера HTML5

Я использую один из новых типов ввода HTML5, number:

<input type="number" />

В Opera, который является единственным браузером на рабочем столе, который я знаю, который в настоящее время распознает его, он отображает его как таковой:

enter image description here

Проблема, с которой я столкнулась, - это проверка. Если пользователь вводит что-то недействительное в поле, например: "abc", значение, возвращаемое myInput.value, является пустой строкой. Это делает невозможным определение того, был ли пользователь оставлен в поле пустым или если они ввели некоторые неверные данные. Есть ли способ получить реальное значение поля?

4b9b3361

Ответ 1

Проект HTML5 определяет:

Алгоритм дезактивации значений выглядит следующим образом: Если значение элемента не является допустимым числом с плавающей запятой, вместо этого установите его в пустую строку.

Ссылка 1

Я полагаю, вы использовали бы значение по умолчанию "0", чтобы убедиться, что поле осталось нетронутым или если что-то недействительное было введено, поскольку, похоже, нет очевидного способа отличить два.

После прочтения спецификаций проверки и некоторых тестов (в Opera 10.54) я пришел к выводу, что:

<input id="email" type="email" value="blah">
document.getElementById("email").validity.typeMismatch // True

Не работает на <input type="number">. Не уверен, должен ли он или если он работает. Однако свойство существует, хотя оно всегда возвращает False.

Подробнее 2

Вы также можете установить собственный метод проверки Ссылка 3