html5 type =" number"工作这么慢

时间:2017-12-25 10:08:24

标签: javascript jquery html5

当我们更改输入值时,我会将值抛出到控制台中。



$(function(){
  $('#a, #b').change(function(){
    console.log($(this).val());
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" id="a" value="1">
<input type="text" id="b" value="1">
&#13;
&#13;
&#13;

尝试:步骤/按几次类型=数字。

结果:对于type = number,浏览器会暂停一段时间(超过1秒),但对于type = text,它会立即发生

预期:已用时间相同。即使是几毫秒(1秒内)也没问题。

可能的原因是type = number验证/首先解析输入,这就是为什么它花了更多次。但为什么需要这么长时间,甚至挂断我的浏览器?

1 个答案:

答案 0 :(得分:3)

您可以使用.on()input触发器解决问题,如下所示。对于输入change()向上和向下按钮,似乎type=number没有触发。

$(function(){
  $('#a, #b').on("input",function(){
    console.log($(this).val());
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" id="a" value="1">
<input type="text" id="b" value="1">