代码之家  ›  专栏  ›  技术社区  ›  Mr world wide

当他们的任何一个孩子被取消选中时,如何取消选中全选复选框

  •  3
  • Mr world wide  · 技术社区  · 7 年前

    如何取消选中全选 checkbox(parent) ,当取消选中任何一个子复选框时!

    从代码段中,当我们选中所有复选框时,以及当我们取消选中用户的复选框时,则应取消选中所有复选框(因为未选中所有复选框)

    $(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>
    3 回复  |  直到 7 年前
        1
  •  3
  •   Death-is-the-real-truth    7 年前

    实际上,您没有对您的问题进行任何编码(即当您取消选中任何复选框而不是全选时,请取消选中全选)。

    $(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>

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

        2
  •  2
  •   Subhrajyoti Das    7 年前

    将以下代码添加到js:

    $('input[name="pages[]"]').click(function(){
      $('input[name="pages[]"]').each(function() { 
        var checked = $(this).attr('checked');
        if(!checked){
          $('#Admin').attr('checked', false);
          return false;
        }
      });
    });
    
        3
  •  1
  •   Mr world wide    7 年前

    对于动态选项卡id,我这样做:

    这是我的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>
    

    这是我的剧本:

    <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>