如何获得字段的“实际”价值<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
注意:您可以忽略水平规则之后的所有内容;它只是填补这个问题的理由。另外:不要将示例与问题混淆。人们可能会因为红色框以外的其他原因而希望得到此问题的答案(一个示例:在onBlur事件期间将文本"four"转换为拉丁"4"符号)
我如何获得控件的“原始”值<input type="number">?
奖励阅读
validity状态 -可以,typeMismatch但是我还没有检查自己。
blah是无效数字”。
number您不是要查找的输入类型;使用普通text输入。