我想从 javaScript而不是jQuery 中触发更改事件并选中复选框
由于这个Strange Behaviour,我遇到了jQuery的问题。
我以前用jQuery做的是:
$('#laneFilter').prop('checked','true').trigger('change');
我想要与javaScript相同。这一定非常简单但我找不到方法。 请提前帮助谢谢
答案 0 :(得分:4)
有几种方法可以做到这一点。最简单的方法是调用该函数:
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);
}
答案 1 :(得分:2)
我把它切成2然后工作正常
$('#laneFilter').prop('checked','true');
$('#laneFilter').trigger('change');
答案 2 :(得分:0)
<input type="checkbox" id="laneFilter"/>
<script>
checkbox = document.getElementById("laneFilter");
checkbox.onclick = function(){
alert('lol');
};
checkbox.checked = true;
</script>
也应该有用
答案 3 :(得分:0)
只需调用不带参数的更改功能。
$('#laneFilter').change('change', function(){
debugger
...
}).change();
它适用于&#34; jquery&#34;:&#34; 3.3.1&#34;
答案 4 :(得分:0)
仅当通过设置元素的onchange属性注册了事件侦听器时,所选答案才有效。
如果不是这种情况,可以使用:
let element = document.getElementById('laneFilter');
let event = new Event('change');
element.dispatchEvent(event);