Как я могу получить "реальное" значение поля <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">?