获取HTML5数字输入框的值

18

我正在使用HTML5的一个新输入类型,number

<input type="number" />

在Opera浏览器中,这是我所知道的唯一桌面浏览器能够识别它,它渲染的结果如下图所示:

enter image description here

我面临的问题是验证问题。如果用户在字段中输入无效内容,例如:abc,则由myInput.value返回的值为空字符串。这使得无法判断用户是将字段留空还是输入了错误的数据。是否有任何方法可以获取字段的真实值?

1个回答

13
HTML5草案定义了以下内容: 值净化算法如下:如果元素的值不是有效的浮点数,则将其设置为空字符串。 参考资料1 我认为你需要使用默认值“0”来确保字段不被更改,或者在输入无效内容时没有明显的区分方法。
阅读验证规范和一些测试(在Opera 10.54中),我得出结论:
<input id="email" type="email" value="blah">
document.getElementById("email").validity.typeMismatch // True

无法在 <input type="number"> 上工作。不确定它是否应该,或者它是否正在进行中。但是该属性确实存在,尽管它始终返回 False。 阅读更多2 您还可以设置自定义验证方法参考资料3

2
哦,糟糕。对于我的目的来说,留空字段需要是一个有效的状态(而且与输入0不同...)。无论如何,还是谢谢。 - nickf
那个规范确实说:“如果将解析浮点数值的规则应用于输入结果导致错误,则返回错误;否则,返回结果数字。” 你认为有什么方法可以捕获这个错误吗? - nickf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接