Javascript 如何选中复选框(就像手动选中)
我有一个包含类复选框的复选框列表。将不同的任务分配给不同的复选框。单击一个复选框可执行某些操作,单击另一个复选框可执行其他操作 现在我想做一个复选框,它应该将所有带有类复选框的复选框标记为选中。 因此,我创建了一个新的复选框,并使用以下代码标记所有其他复选框Javascript 如何选中复选框(就像手动选中),javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有一个包含类复选框的复选框列表。将不同的任务分配给不同的复选框。单击一个复选框可执行某些操作,单击另一个复选框可执行其他操作 现在我想做一个复选框,它应该将所有带有类复选框的复选框标记为选中。 因此,我创建了一个新的复选框,并使用以下代码标记所有其他复选框 $(".checkbox").prop('checked', true); 它确实标记了我的所有复选框,但问题是它不会启动与这些复选框关联的事件和函数 怎么做 这是完整的代码 $("#check_all").change(function
$(".checkbox").prop('checked', true);
它确实标记了我的所有复选框,但问题是它不会启动与这些复选框关联的事件和函数
怎么做
这是完整的代码
$("#check_all").change(function(){
//If it was checked
if($(this).prop('checked') == true){
$(".checkbox").prop('checked', true);
}
//If it was unchecked
else {
$(".checkbox").prop('checked', false);
}
});
您可以触发单击事件:
做你需要做的事情的一个简单方法是:
$('#checkAll').on('click', function()
{
var all;
if (this.checked)
all = $('.checkbox').not(':checked');
else
all = $('.checkbox:checked');
all.prop('checked',this.checked);
});
正如你所看到的,它是有效的
它的工作原理很简单:
this.checked告诉我check all元素的检查状态是什么。如果选中,则未选中的其他复选框应更改状态。如果this.checked为false,我必须取消选中所有复选框。
这意味着我必须使用两种不同的选择方法:$'.checkbox:checked'提供所有选中的元素,而$'.checkbox'.not':checked'提供站点
我只需将主控件$'checkAll'元素的检查状态传递给$.prop方法,即可更新所选元素:try$.list.triggerchange@EliasVanOotegem是吗?这有什么意义?@AnoopJoshi it勾选/取消勾选复选框,但没有引发任何事件有人能解释为什么有3张反对票吗?我没有提供活动的细节,因为活动太多了。AJAX、排序、排序等$this.prop'checked'是this.checked的一个冗余版本。如果$'check\u all'错误地被赋予了.checkbox类,或者如果某个其他代码段将事件侦听器绑定到click事件,并绑定到任何一个.checkbox元素,该怎么办?为什么还要点击这些元素?@EliasVanOotegem根据我的个人经验,当我改变复选框的状态时,我想触发与点击它完全相同的事件。否则你必须手动触发特定的事件我不知道任何有问题的事件
$('#checkAll').on('click', function()
{
var all;
if (this.checked)
all = $('.checkbox').not(':checked');
else
all = $('.checkbox:checked');
all.prop('checked',this.checked);
});