我正在使用其中一种新的HTML5输入类型number:
<input type="number" />
在Opera中,这是我所知道的目前唯一可识别它的桌面浏览器,它呈现如下:
我面临的问题是验证问题。如果用户在字段中键入无效内容,例如:“abc
”,则myInput.value
返回的值为空字符串。这使得无法判断用户是否将该字段留空,或者是否输入了一些不正确的数据。有没有办法获得该领域的真正价值?
答案 0 :(得分:13)
HTML5草案定义:
值清理算法如下:如果元素的值不是有效的浮点数,则将其设置为空字符串。
我想你已经使用默认值“0”来确保字段保持不变或者输入的内容无效,因为似乎没有明显的方法来区分这两者。
在阅读了验证规范和一些测试(在Opera 10.54中)后,我得出结论:
<input id="email" type="email" value="blah">
document.getElementById("email").validity.typeMismatch // True
不适用于<input type="number">
。不确定它是否应该,或者它是否正在进行中。但是该属性确实存在,但它总是返回False。
您还可以设置自定义验证方法Reference3