<input type=number>
,给定 min , max 和步骤不接受某些数字范围正确,验证错误“您必须输入有效值”
在我的例子中,我选择min为-90,max为90(地理纬度输入),步骤为0.00001。
由于某种原因,以下值范围无效:
这些范围之间的差距是有效的
包含错误的测试用例:https://jsfiddle.net/w0r05kq7/4/
代码:
<form>
<input type="number" min="-90" max="90" step="1.0e-05" value="58,69374">
<input type="submit"></input>
</form>
Edge或IE11 / Win10
不会发生这种情况由于其在其他浏览器上的实用性,我想继续使用数字输入,但我也需要一些IE支持。有没有解决方法或我应该放弃?
答案 0 :(得分:1)
问题在于如何在IE中验证约束。我测试了值34,并且在调用方法string
时,它返回input.checkValidity
。另外,在检查false
时,它会将input.validity
错误显示为true。在计算这些验证时似乎存在一些问题
我已经制作了一个复制的plunker,有趣的是,如果你将步长设置为4位小数,那么它适用于所有情况,但随着你增加到5位小数,它会产生验证错误。
我希望这会让你对这个问题的根源有所了解。如果可能的话,你可以开发4个decima地方。我会看看IE是否有5个小数位的工作区,如果找到任何一个