繁体   English   中英

即使通过Javascript代码检查,如何触发复选框点击事件?

[英]How to trigger checkbox click event even if it's checked through Javascript code?

我的页面中有很多复选框,并且有一个全选复选框,用于检查所有复选框。 不知何故,我想模仿复选框的点击事件,即使通过选择所有按钮选中/取消选中它也是如此。 我该怎么做?

您可以使用jQuery .trigger()方法。 http://api.jquery.com/trigger/

例如:

$('#foo').trigger('click');

获得检查状态

var checked = $("#selectall").is(":checked");

然后进行设置

$("input:checkbox").attr("checked",checked);

您也可以使用.change()函数

例如:

$('form input[type=checkbox]').change(function() { console.log('hello') });

没有gQuery

的document.getElementById( 'your_box')的onclick();

我在复选框上使用了某些课程。

var x = document.getElementsByClassName("box_class");
var i;
for (i = 0; i < x.length; i++) {
    if(x[i].checked) x[i].checked = false;
    else x[i].checked = true;
    x[i].onclick();
   }

jQuery的触发器功能可能是你的答案。

jQuery文档说: 当相应的事件发生时,任何附加.on()或其快捷方法之一的事件处理程序都会被触发。 但是,可以使用.trigger()方法手动触发它们。 对.trigger()的调用以与用户自然触发事件时相同的顺序执行处理程序

因此,最好的一线解决方案应该是:

$('.selector_class').trigger('click');

//or

$('#foo').click();

你也可以用这个,希望你能为他们服务。

 $(function(){ $('#elements input[type="checkbox"]').prop("checked", true).trigger("change"); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <div id="elements"> <input type="checkbox" id="item-1" value="1"> Item 1 <br /> <input type="checkbox" id="item-2" value="2" disabled> Item 2 <br /> <input type="checkbox" id="item-3" value="3" disabled> Item 3 <br /> <input type="checkbox" id="item-4" value="4" disabled> Item 4 <br /> <input type="checkbox" id="item-5" value="5"> Item 5 </div> 

  $("#gst_show>input").change(function(){

    var checked = $(this).is(":checked");
    if($("#gst_show>input:checkbox").attr("checked",checked)){
      alert('Checked Successfully');
    }

  });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM