【发布时间】:2025-12-27 02:25:09
【问题描述】:
我遇到了一个令人沮丧的问题。 input 和 change 事件有不同的用途:
-
input应该在每次元素值更改时触发 -
change应该在元素失去焦点时触发,如果值改变了
这是我在移动设备(Android Chrome)上测试时看到的行为,除了。在移动设备上,input 事件会在两种情况下触发:每次发生变化时,和失去焦点时。
Here's a JSFiddle to test,还有一个例子:
<input id="input" type="text" />
<script>
// On mobile, this will fire an extra time when the input loses focus!
document.getElementById('input').addEventListener('input', console.log);
</script>
这与我想要的组件行为相冲突,而且我没有太多运气摆脱它。它在blur 和change 事件之前被触发,所以我无法在那里阻止它,而且我在事件本身中没有发现任何可以将它与定期input 活动。有人有想法吗?
我正在 Android Chrome 56.0.2924.87 上进行测试,如果其他移动浏览器上有类似行为,我非常感谢反馈。
【问题讨论】:
标签: javascript mobile input