Как я могу получить «реальное» значение <input type="number">
поля?
У меня есть input
коробка, и я использую новый тип ввода HTML5 number
:
<input id="edQuantity" type="number">
В основном это поддерживается в Chrome 29:
Что мне теперь нужно, так это возможность читать «сырое» значение, введенное пользователем в поле ввода. Если пользователь ввел номер:
тогда edQuantity.value = 4
и все хорошо.
Но если пользователь вводит недопустимый текст, я хочу покрасить поле ввода красным цветом:
К сожалению, для type="number"
поля ввода, если значение в текстовом поле не является числом, value
возвращается пустая строка:
edQuantity.value = "" (String);
(как минимум в Chrome 29)
Как я могу получить "сырое" значение элемента <input type="number">
управления?
Я попытался просмотреть список других свойств поля ввода Chrome:
я не видел ничего похожего на фактический ввод.
Я также не мог найти способ узнать, «пусто» ли поле или нет. Возможно, я мог предположить:
value isEmpty Conclusion
============= ============= ================
"4" false valid number
"" true empty box; not a problem
"" false invalid text; color it red
Примечание . Все, что находится после горизонтальной линейки, можно игнорировать; это просто наполнитель для обоснования вопроса. Также: не путайте пример с вопросом. Люди могли бы ответить на этот вопрос , по причинам , другие , чем окрашивать коробки красных (один пример: преобразование текста "four"
в латинском "4"
символ во время мероприятия ONBLUR)
Как я могу получить "сырое" значение элемента <input type="number">
управления?
Бонусное чтение
validity
состоянии - я бы ожидать , typeMismatch
но я не проверял сам.
blah
неверный номер».
number
это не тот тип ввода, который вы ищете; используйте обычныйtext
ввод.