Javascript 获取HTML5数字输入的值

Javascript 获取HTML5数字输入的值,javascript,html,input,Javascript,Html,Input,我正在使用一种新的HTML5输入类型: Opera是我所知道的唯一一款能够识别它的桌面浏览器,它将其呈现为: 我面临的问题是验证。如果用户在字段中键入无效内容,例如:“abc”,则myInput.value返回的值为空字符串。这使得无法判断用户是否将字段留空,或者他们是否输入了一些不正确的数据。有没有办法获得字段的实际值?HTML5草案定义: 值清理算法如下:如果元素的值不是有效的浮点数,则将其改为空字符串。 我想您应该使用默认值“0”来确保字段未被触及,或者如果输入了无效内容,因为似乎

我正在使用一种新的HTML5输入类型:


Opera是我所知道的唯一一款能够识别它的桌面浏览器,它将其呈现为:


我面临的问题是验证。如果用户在字段中键入无效内容,例如:“
abc
”,则
myInput.value
返回的值为空字符串。这使得无法判断用户是否将字段留空,或者他们是否输入了一些不正确的数据。有没有办法获得字段的实际值?

HTML5草案定义:

值清理算法如下:如果元素的值不是有效的浮点数,则将其改为空字符串。

我想您应该使用默认值“0”来确保字段未被触及,或者如果输入了无效内容,因为似乎没有明显的方法来区分这两者

在阅读验证规范和一些测试(在Opera 10.54中)后,我得出结论:

<input id="email" type="email" value="blah">
document.getElementById("email").validity.typeMismatch // True

document.getElementById(“email”).validity.typemissmatch//True
不适用于
。不确定这是应该的,还是正在进行的工作。但是,该属性确实存在,尽管它总是返回False


您还可以设置自定义验证方法。出于我的目的,将字段留空需要是一个有效的状态(这与输入0不同…),谢谢。该规范确实说“如果将解析浮点数值的规则应用于输入结果时出现错误,则返回错误;否则,返回结果数。”您认为有什么方法可以捕获该错误吗?
<input id="email" type="email" value="blah">
document.getElementById("email").validity.typeMismatch // True