当我们单击“为标签分配”复选框时,Chrome 和 IE 不会按时触发更改事件
Chrome and IE doesn't fire change event on time when we click on label assigned for checkbox
在用户选中复选框的特定条件下,我想显示一条警报消息并取消选中该复选框,因此要取消选中复选框,我正在对其调用单击函数,以便它在内部取消选中并触发必要的事件。
我有一个复选框和标签,用于复选框,for
标签正确设置了属性
- 在 Firefox 中,取消选中适用于复选框及其标签。
- 在 chrome 中,取消选中适用于复选框,但不适用于标签。
- 在 chrome 中,取消选中不适用于复选框或标签。
通过特定的超时,我能够解决这个问题,但我想要一个不使用超时的解决方案。
您可以在此处查看代码并访问jsfiddle。
$("#id1").on("change", function(event) {
if (event.target.checked) {
$(event.target).trigger("click");
}
});
$("#id2").on("change", function(event) {
setTimeout(function() {
if (event.target.checked) {
$(event.target).trigger("click");
}
}, 5);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<input type="checkbox" value="" id="id1">
<label for="id1">Click me</label>
<br/>
<input type="checkbox" value="" id="id2">
<label for="id2">Works with timeout</label>
This work quite well with Firefox but not in chrome and IE9, IE10
我正在寻找javascript或jQuery解决方案
试试这个:
$("#id1").change(function(event) {
if (this.checked) {
this.checked = false;
}
});
我已经在Chrome中尝试过,它似乎可以工作,基本上不是单击复选框,而是修改其状态
斯菲德尔
更新了 JSFIDDLE 触发点击事件
相关文章:
- 了解在JavaScript中(在IE中)对某个事件调用了什么函数
- 在IE中单击之前触发的更改事件
- IE 11未在SVG地图上启动Mouseenter或Mouseleave事件
- 单击事件似乎不适用于 IE 中的选择元素
- IE 输入清除图标有时不会触发更改事件
- 为什么IE浏览器不喜欢我的点击事件
- 用modernizr测试ie中的指针事件
- 可以't基于JavaScript IE识别激活事件
- 是避免IE内存泄漏所需的取消挂起事件处理程序
- Mouseover,Mouseout事件未在IE中启动
- 来自 java 脚本的按钮单击事件在 IE 9 中不起作用
- 事件侦听器不会在IE中被调用 - 这是怎么回事
- 如何在 IE-8 及更早版本中使用事件侦听器
- 用于右键单击<输入>或<文本区域>上的删除的 IE 事件
- 未触发 IE 单击事件跨度
- 范围滑块输入事件在 IE 10 中未触发
- IE 焦点事件在 ajax 加载后随机失败
- 如何检测 IE 10+ 的错误事件
- 更改事件 - IE 错误
- 解释使用动态生成的DOM属性的IE事件绑定机制