简体   繁体   English

当取消选择任何一个孩子时,如何取消选中全选复选框

[英]How to uncheck select all checkbox when any one of their child got deselected

How can I uncheck the select all checkbox(parent) , when any one of their child checkboxes are deselected! 如果取消选中其中任何一个子复选框,如何取消选中全选checkbox(parent)

From the snippet when we select all checkbox and when we deselect users from their then select all checkbox should be unchecked (Because all checkboxes are not selected) 从我们选择所有复选框的代码段中,当我们取消选择用户时,则应取消选中所有复选框(因为未选中所有复选框)

 $(document).ready(function() { $('#Admin').click(function() { var checked = $(this).prop('checked'); $('#tab-10').find('input:checkbox').prop('checked', checked); }); $('#Sales').click(function() { var checked = $(this).prop('checked'); $('#tab-20').find('input:checkbox').prop('checked', checked); }); // i have so may like this in that case how can i do that.? }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="nav nav-tabs"> <li class="active"><a data-toggle="tab" href="#tab-10"> First </a></li> <li class=""><a data-toggle="tab" href="#tab-20"> Second </a></li> </ul> <div class="tab-content vehicle"> <div id="tab-10" class="tab-pane active"> <div class="panel-body"> <div class="row"> <div class="col-md-3"> <div class="checkbox"> <label><input type="checkbox" id="Admin"><b>Select All</b></label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label><input type="checkbox" name="pages[]" value="2">Dealerships</label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label><input type="checkbox" name="pages[]" value="23">Users</label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label><input type="checkbox" name="pages[]" value="59">Third-Party Exports</label> </div> </div> </div> </div> </div> <br><br> <div id="tab-20" class="tab-pane "> <div class="panel-body"> <div class="row"> <div class="col-md-3"> <div class="checkbox"> <label><input type="checkbox" id="Sales"/><b>Select All</b></label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label><input type="checkbox" name="Second[]" value="2">Second tab 1</label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label><input type="checkbox" name="Second[]" value="23">Second tab 1</label> </div> </div> </div> </div> </div> </div> 

Actually you din't did any coding regarding your issue (that is when you uncheck any check-box rather than select-all, make select-all unchecked). 实际上你没有对你的问题进行任何编码(即当你取消选中任何复选框而不是select-all时,选择all-all取消选中)。

Do like below:- 如下所示: -

 $(document).ready(function() { $('#Admin').click(function() { var checked = $(this).prop('checked'); $('#tab-10').find('input:checkbox').prop('checked', checked); }); $('#Sales').click(function() { var checked = $(this).prop('checked'); $('#tab-20').find('input:checkbox').prop('checked', checked); }); $('.tab-pane').find('input:checkbox:not(:first)').click(function() { if (!$(this).is(':checked')) { $(this).closest('.tab-pane').find('input:checkbox:first').prop('checked', false); } else { var checkbox_length = $(this).closest('.tab-pane').find('input:checkbox:not(:first)').length; var checked_check_box_length = $(this).closest('.tab-pane').find('input:checkbox:not(:first):checked').length; if (checkbox_length == checked_check_box_length) { $(this).closest('.tab-pane').find('input:checkbox:first').prop('checked', true); } } }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="nav nav-tabs"> <li class="active"><a data-toggle="tab" href="#tab-10"> First </a></li> <li class=""><a data-toggle="tab" href="#tab-20"> Second </a></li> </ul> <div class="tab-content vehicle"> <div id="tab-10" class="tab-pane active"> <div class="panel-body"> <div class="row"> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" id="Admin"><b>Select All</b></label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="pages[]" value="2">Dealerships</label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="pages[]" value="23">Users</label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="pages[]" value="59">Third-Party Exports</label> </div> </div> </div> </div> </div> <br> <br> <div id="tab-20" class="tab-pane "> <div class="panel-body"> <div class="row"> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" id="Sales" /><b>Select All</b></label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="Second[]" value="2">Second tab 1</label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="Second[]" value="23">Second tab 1</label> </div> </div> </div> </div> </div> </div> 

Working fiddle:- http://jsfiddle.net/am6rgdw1/ 工作小提琴: - http://jsfiddle.net/am6rgdw1/

Add the below code to your js: 将以下代码添加到您的js:

$('input[name="pages[]"]').click(function(){
  $('input[name="pages[]"]').each(function() { 
    var checked = $(this).attr('checked');
    if(!checked){
      $('#Admin').attr('checked', false);
      return false;
    }
  });
});

For Dynamic tab id's i did like this: 对于动态标签ID,我喜欢这样:

This is my html and php: 这是我的HTML和PHP:

<div class="tab-content vehicle">
<?php  $active='active'; foreach ( $check_menu as $y) {?>
<div id="tabs-<?=$y?>" class="tab-pane <?=$active?>">
<div class="panel-body">
<div class="row">
    <div class="col-md-3">
        <div class="checkbox">
            <label>
                <input type="checkbox" class="SelectAll_Dynamic" id="<?=$y?>" />
                <b>Select All</b>
            </label>
        </div>
    </div>
    <?php  foreach($menus as $x): if ($x['parent_id'] ==$y):?>
    <div class="col-md-3">
        <div class="checkbox">
            <label>
                <input type="checkbox" name="pages[]" value="<?=$x['id']?>"
                <?php   if (array_search($x['id'],$my_menu,true))
                    {
                        echo "checked ";
                    }
                ?>
            ><?=$x['name']?></label>
        </div>
    </div>
    <?php  endif; $active="";
    endforeach;?>
</div></div>
</div>
<?php } ?>
</div>

This is my script: 这是我的脚本:

<script>
    $(document).ready(function() {
        $('.SelectAll_Dynamic').click(function() {
            var select_Id = this.id;
            var checked = $(this).prop('checked');
            $('#tabs-'+select_Id).find('input:checkbox').prop('checked', checked);
            alert(select_Id);
        });

        $('.tab-pane').find('input:checkbox:not(:first)').click(function() {
            if (!$(this).is(':checked')) {
                $(this).closest('.tab-pane').find('input:checkbox:first').prop('checked', false);
                } else {
                var checkbox_length = $(this).closest('.tab-pane').find('input:checkbox:not(:first)').length;
                var checked_check_box_length = $(this).closest('.tab-pane').find('input:checkbox:not(:first):checked').length;
                if (checkbox_length == checked_check_box_length) {
                    $(this).closest('.tab-pane').find('input:checkbox:first').prop('checked', true);
                }
            }
        });
    });

</script>

暂无
暂无

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

相关问题 取消选中一个复选框后如何启用所有复选框? 使用JavaScript - How to enable all checkbox when one checkbox is deselected ? using javascript 如果取消选中任何子复选框,如何取消选中“全选”复选框 - How do I uncheck 'select-all' checkbox if any child checkbox gets unchecked 如果取消选中一个复选框,如何取消选中以下所有复选框 - How to uncheck all below checkboxes when one checkbox is unchecked 如果勾选了一个复选框,如何取消选中所有复选框? - How to uncheck all checkboxes, if one checkbox checked? 选中所有复选框,并取消选中是否在没有jQuery的React中取消选中它们中的任何一个 - Check all checkboxes, and uncheck if any of them deselected in React without jQuery 当取消选中一个或多个项目时,knockout.js取消选择/选中所有复选框 - knockoutjs deselect/select all checkboxes when one or more items deselected 如何选中另一个复选框时取消选中复选框? - How to uncheck a checkbox when another one is checked? 取消选中所有复选框,然后单击某个复选框时取消选中 - uncheck all check boxes other then one when clicked on a particular checkbox 当组中的一个复选框被选中时,禁用并取消选中所有其他复选框 - When one checkbox is checked in a group, disable & uncheck all other checkboxes 如何取消选中Ext.selection.CheckboxModel中的全选复选框 - How to uncheck the select all checkbox in Ext.selection.CheckboxModel
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM