Як я можу отримати "реальне" значення <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
вхід.