IE11中的<input type =“number”/>验证错误(Windows 7,8)

时间:2015-09-02 08:15:25

标签: validation internet-explorer internet-explorer-11

IE11 / Win7和IE11 / Win8上的

<input type=number>,给定 min max 步骤不接受某些数字范围正确,验证错误“您必须输入有效值”

在我的例子中,我选择min为-90,max为90(地理纬度输入),步骤为0.00001。

由于某种原因,以下值范围无效:

  • 24至77
  • -75至-49
  • -33至-7

这些范围之间的差距是有效的

包含错误的测试用例: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支持。有没有解决方法或我应该放弃?

1 个答案:

答案 0 :(得分:1)

问题在于如何在IE中验证约束。我测试了值34,并且在调用方法string时,它返回input.checkValidity。另外,在检查false时,它会将input.validity错误显示为true。在计算这些验证时似乎存在一些问题

我已经制作了一个复制的plunker,有趣的是,如果你将步长设置为4位小数,那么它适用于所有情况,但随着你增加到5位小数,它会产生验证错误。

  1. Plunker Link:http://plnkr.co/edit/kiy4t302ivwsDWb1C1vG?p=preview
  2. 约束验证:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation
  3. IE11问题:https://connect.microsoft.com/IE/feedback/details/850187/html5-constraint-validation-is-broken-in-ie11-for-input-type-number

  4. 我希望这会让你对这个问题的根源有所了解。如果可能的话,你可以开发4个decima地方。我会看看IE是否有5个小数位的工作区,如果找到任何一个

    将更新答案