Получение значения для ввода числа в HTML5 - PullRequest
18 голосов
/ 22 июня 2010

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

<input type="number" />

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

enter image description here

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

1 Ответ

13 голосов
/ 22 июня 2010

В проекте 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...