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