-3

JSFiddle 中的分组复选框:第 1 部分

在解决第 1 部分的 Global Checkbox for All Check/Uncheck 之后。我还有其他几个问题要解决。

  1. 如果我取消选中列表中的任何项目。自动全局(全选)应取消选中。

在此处输入图像描述

  1. 如果我单独检查所有项目。应选中 Automatically Global (Check all)。像这样。 在此处输入图像描述

代码

 <fieldset>
    <!-- these will be affected by check all -->
    <div><input type="checkbox" ID="checkall1"> Check all</div>
    <div><input type="checkbox"> Checkbox</div>
    <div><input type="checkbox"> Checkbox</div>
    <div><input type="checkbox"> Checkbox</div>
</fieldset>
<fieldset>
    <!-- these won't be affected by check all; different field set -->
    <div><input type="checkbox" ID="checkall2"> Check all</div>
    <div><input type="checkbox"> Checkbox</div>
    <div><input type="checkbox"> Checkbox</div>
    <div><input type="checkbox"> Checkbox</div>
</fieldset>

JS

   $('[id^=checkall]').click(function(){
    $(this).closest('fieldset').find('input').not(this).prop('checked',this.checked);
});

JSFiddle

4

1 回答 1

0

注册一个回调,它将检查当前组中的所有复选框是否都被选中

$('input[id^=checkall]').click(function(){
    $(this).closest('fieldset').find('input').not(this).prop('checked',this.checked);
});

$(':checkbox').not('[id^=checkall]').click(function(){
    var all = $(this).closest('fieldset').find('[id^=checkall]');
    var chks = $(this).closest('fieldset').find('input').not(all);

    all.prop('checked', chks.length == chks.filter(':checked').length);
})

演示:小提琴

于 2013-07-09T12:58:40.090 回答