代码之家  ›  专栏  ›  技术社区  ›  nickf

获取HTML5数字输入的值

  •  18
  • nickf  · 技术社区  · 15 年前

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

    <input type="number" />
    

    在Opera中,这是我所知的唯一一款目前可以识别它的桌面浏览器,它将其呈现为:

    enter image description here

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

    1 回复  |  直到 13 年前
        1
  •  13
  •   Zachary Craig    7 年前

    HTML5草案定义:

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

    Reference 1

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

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

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

    不适用于 <input type="number"> . 不确定是应该这样做,还是正在进行中。但是,该属性确实存在,尽管它总是返回False。

    Read more 2

    还可以设置自定义验证方法 Reference 3