我想从javaScript 而不是 jQuery触发更改事件并选中复选框。由于这种奇怪的行为
,我遇到了 jQuery 问题。
我以前用 jQuery 做的是:
$('#laneFilter').prop('checked','true').trigger('change');
我想对 javaScript 做同样的事情。这一定很简单,但我找不到方法。请帮助提前谢谢
我想从javaScript 而不是 jQuery触发更改事件并选中复选框。由于这种奇怪的行为
,我遇到了 jQuery 问题。
我以前用 jQuery 做的是:
$('#laneFilter').prop('checked','true').trigger('change');
我想对 javaScript 做同样的事情。这一定很简单,但我找不到方法。请帮助提前谢谢
有几种方法可以做到这一点。最简单的方法是调用该函数:
var Chkinput = document.getElementById("laneFilter");
Chkinput .onchange();
如果您需要它来完全模拟真实事件,或者如果您通过 html 属性或addEventListener
/设置事件attachEvent
,则需要进行一些特征检测以正确触发事件:
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
element.dispatchEvent(evt);
}
仅当通过设置元素的 onchange 属性注册事件侦听器时,所选答案才有效。
如果不是这种情况,您可以使用:
let element = document.getElementById('laneFilter');
let event = new Event('change');
element.dispatchEvent(event);
<input type="checkbox" id="laneFilter"/>
<script>
checkbox = document.getElementById("laneFilter");
checkbox.onclick = function(){
alert('lol');
};
checkbox.checked = true;
</script>
也应该工作
这对我有用,也触发了一个change
事件:
const Chkinput = document.getElementById("laneFilter");
Chkinput.click();
(在 Chrome 和 Firefox 中测试)
我把它削减到 2 然后工作正常
$('#laneFilter').prop('checked','true');
$('#laneFilter').trigger('change');
只需调用不带参数的更改函数。
$('#laneFilter').change('change', function(){
debugger
...
}).change();
它适用于“jquery”:“3.3.1”