【问题标题】:Getting the value of a HTML5 number input获取 HTML5 数字输入的值
【发布时间】:2010-06-22 06:35:21
【问题描述】:

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

<input type="number" />

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

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

【问题讨论】:

    标签: javascript html input


    【解决方案1】:

    HTML5 草案定义:

    值净化算法如下:如果元素的值不是有效的浮点数,则将其设置为空字符串。

    Reference1

    我想您应该使用默认值“0”来确保该字段保持不变或输入无效内容,因为似乎没有明显的方法可以区分两者。

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

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

    不适用于&lt;input type="number"&gt;。不确定它是否应该这样做,或者它是否正在进行中。然而,该属性确实存在,尽管它总是返回 False。

    Read more2

    还可以设置自定义验证方式Reference3

    【讨论】:

    • 天哪。出于我的目的,将该字段留空需要是一个有效的状态(这与输入 0 不同......)无论如何,谢谢。
    • 该规范确实说“如果将解析浮点数值的规则应用于输入导致错误,则返回错误;否则,返回结果数。”你认为有什么办法可以捕捉到这个错误吗?
    猜你喜欢
    • 2017-11-22
    • 2022-01-05
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    相关资源
    最近更新 更多