触发时未触发onchange事件的复选框
Checkbox not firing onchange event when triggered
这是我的问题JSFiddle的预览。
基本上,当我像这样用程序更改输入状态时,我希望触发更改事件:
el.checked = true;
但只有当我直接点击复选框时,事件才会被触发,这对我来说不起作用
编辑:一些澄清:当点击按钮时,我已经在发送一个更改事件,它运行得很好。问题是,我有自定义的复选框元素,而本机输入是隐藏的。因此,当我单击自定义复选框时,更改事件就会正确启动。但是,当我更改本机复选框状态时,自定义复选框不会更改,因为我无法检测到这种更改。。。
我需要的是一些自定义的方法来检测这个复选框的更改,并告诉我"在这里,你的复选框被更改了"。
我使用dispatchEvent:使其工作
button.addEventListener('click', function() {
if (input.checked) input.checked = false;
else input.checked = true;
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
input.dispatchEvent(evt);
}
else
input.fireEvent("onchange");
});
这是工作Fiddle:
JavaScript中的事件处理程序不会对程序更改做出反应。您必须从代码中调用处理程序。
但是,当您无法访问事件处理程序时,您可以尝试创建自己的事件并在输入时分派它。这里有一个相关的帖子:是否可以将鼠标点击dispatchEvent()到<输入类型=文本>要素
相关文章:
- 如果选中了多个复选框,如何添加事件
- 复选框,然后单击事件处理
- Firefox:点击并更改未附加到文档树中的复选框元素上的事件
- 选中javascript中的属性集时,复选框更改事件未触发
- jQuery复选框(在ul>li下)检查事件
- 如何禁用自定义复选框的单击事件
- 将函数事件绑定到更改函数的复选框/标签
- 复选框事件onclick不起作用
- 单击复选框后未收到复选框事件
- 使用 JavaScript 复选框事件切换 html 的可见性
- 复选框事件和保持数组-如何在代码中处理
- onclick复选框事件
- 根据某些业务逻辑动态添加和删除复选框事件
- 复选框事件找不到javascript函数
- jqGrid复选框事件
- jQuery复选框事件处理程序Bug
- 如何在指令中捕获复选框事件
- 复选框事件处理程序抛出错误的点击事件在chrome浏览器,safari工作良好的键盘事件
- AJAX调用后未触发语义UI复选框事件
- 使用 jquery 跟踪复选框事件