我正在尝试使用 HTML5<input type="number">
元素对数字字段进行 Javascript 客户端验证。还有服务器端验证,所以我们不要为此大吵大闹... ;)
我希望提供三种状态级别的验证:绿色表示定义范围内的有效数字,黄色表示超出范围的数字或空字段,红色表示非数字输入。
我的问题是 IE11(我相信 IE10)似乎.value
为非数字输入返回了一个空白属性。也就是说,如果我abc
在框中输入,.value
就是""
. 这使我无法区分黄色(空白)和红色(垃圾)。
我知道新.valueAsNumber
属性的存在,但这并不能完全帮助我,因为我无法区分其他浏览器上的空和 IE10/11 上的非数字(.value
为空,.valueAsNumber
是NaN
)。
有没有人解决过这个问题?我不想求助于跟踪按键,我想支持旧版浏览器(回到 IE8),这些浏览器恢复到type="text"
并且没有.valueAsNumber
. 提前致谢...
编辑:只是为了澄清(希望如此),我的问题是 IE10/11 中的.value
和输出.valueAsNumber
不允许我区分无输入和非数字输入。我希望能够在没有浏览器嗅探和回退到type="text"
.