javascript – 复选框在触发时不会触发onchange事件

这是我的问题预览 – 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");
});

这是Working Fiddle

上一篇:Java集合框架——LinkedHashMap集合


下一篇:【jdk1.8源码分析】LinkedHashMap