选中复选框并触发更改事件javascript

Sac*_*rma 3 javascript checkbox

我想触发更改事件并从javaScript而不是jQuery选中复选框。
由于这种奇怪的行为,我遇到了jQuery问题。
我以前用jQuery做的是:

$('#laneFilter').prop('checked','true').trigger('change');
Run Code Online (Sandbox Code Playgroud)

我也想对javaScript做同样的事情。这一定很简单,但我找不到办法。请提前帮助谢谢

小智 9

仅当通过设置元素的 onchange 属性注册事件侦听器时,所选答案才会起作用。

如果不是这种情况,您可以使用:

    let element = document.getElementById('laneFilter');
    let event = new Event('change');
    element.dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)


mar*_*r10 8

这对我有用并且还会触发一个change事件:

const Chkinput = document.getElementById("laneFilter");
Chkinput.click();
Run Code Online (Sandbox Code Playgroud)

(在 Chrome 和 Firefox 中测试)


Ish*_*ain 6

有两种方法可以做到这一点。最简单的方法是只调用该函数:

var Chkinput = document.getElementById("laneFilter");
Chkinput .onchange();
Run Code Online (Sandbox Code Playgroud)

如果需要它来完全模拟真实事件,或者通过html属性或addEventListener/ 设置事件attachEvent,则需要进行一些功能检测以正确触发事件:

if ("createEvent" in document) {
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", false, true);
    element.dispatchEvent(evt);
}
Run Code Online (Sandbox Code Playgroud)