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

时间:2013-10-30 07:43:55

标签: javascript jquery checkbox

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

$('#laneFilter').prop('checked','true').trigger('change');

我想要与javaScript相同。这一定非常简单但我找不到方法。 请提前帮助谢谢

5 个答案:

答案 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);