6

我的页面中有一个复选框。当我选中它时,应该选中其他复选框。当我取消选中它时,所有其他复选框也应该取消选中。如何使用 jQuery 做到这一点?还是简单的 HTML 就足够了?小提琴

    <div>Select All<input type="checkbox" checked="true"></div> 
    1.<input type="checkbox"> 
    2.<input type="checkbox"> 
    3.<input type="checkbox"> 
    4.<input type="checkbox"> 
    5.<input type="checkbox"> 
4

6 回答 6

9

使用 jQuery你可以这样做

HTML:

<input id='selectall' type="checkbox" checked="true">

JS:

$('#selectall').change(function () {
    if ($(this).prop('checked')) {
        $('input').prop('checked', true);
    } else {
        $('input').prop('checked', false);
    }
});
$('#selectall').trigger('change');

在小提琴中检查这个

于 2013-10-04T06:32:12.777 回答
5

试试这个,

<div>Select All<input type="checkbox" id="parent" /></div> 
  1.<input type="checkbox" class="child"> 
  2.<input type="checkbox" class="child"> 
  3.<input type="checkbox" class="child"> 
  4.<input type="checkbox" class="child"> 
  5.<input type="checkbox" class="child"> 

<script>
    $(function(){
      $('#parent').on('change',function(){
         $('.child').prop('checked',$(this).prop('checked'));
      });
      $('.child').on('change',function(){
         $('#parent').prop('checked',$('.child:checked').length ? true: false);
      });
    });
</script>

小提琴

你可以像这样实现它,

$(function() {
  $('#parent').on('change', function() {
    $('.child').prop('checked', this.checked);
  });
  $('.child').on('change', function() {
    $('#parent').prop('checked', $('.child:checked').length===$('.child').length);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>Select All<input type="checkbox" id="parent" /></div>
1.<input type="checkbox" class="child"> 2.
<input type="checkbox" class="child"> 3.
<input type="checkbox" class="child"> 4.
<input type="checkbox" class="child"> 5.
<input type="checkbox" class="child">

于 2013-10-04T06:31:58.043 回答
1

你可以试试这个:

            <html>
            <head>
            <script type="text/javascript">
            function toggleGroup(id) {
                var group = document.getElementById(id);
                var inputs = group.getElementsByTagName("input");
                for (var i = 0; i < inputs.length; i++) {
                    inputs[i].checked = (inputs[i].checked) ? false : true;
                }

            }
            window.onload = function() {
            document.getElementById("checkmain").onchange = function() {
               toggleGroup("check_grp");

            }
            }
            </script>
            </head>
            <body>
             <form name="form1" >
                <input type="checkbox" name="checkmain" id="checkmain" /><br />
                <p id="check_grp">
                     <input type="checkbox" /><label for="check1">check 1</label>
                     <input type="checkbox"  /><label for="check2">check 2</label>
                     <input type="checkbox"  /><label for="check3">check 3</label>
                     <input type="checkbox"  /><label for="check4">check 4</label>
                     <input type="checkbox"  /><label for="check5">check 5</label>
                </p>
            </form>
            </body>
            </html>
于 2013-10-04T06:31:07.673 回答
0
<div>Select All<input id= "all" type="checkbox" checked="true" />
    </div> 
1.<input class='checkbox' type="checkbox"> 
2.<input type="checkbox"class='checkbox'> 
3.<input type="checkbox"class='checkbox'> 
4.<input type="checkbox"class='checkbox'> 
5.<input type="checkbox"class='checkbox'> 

$(document).ready(function(){
    $("#all").change(function(){
        $('.checkbox').prop('checked', $(this).prop('checked'));
    });
});

小提琴

于 2013-10-04T06:36:16.960 回答
0

在 HTML 中做了一些改动:

<div>Select All<input type="checkbox" checked="true" onChange='f.update(this)'/>
</div> 
 <div id="target">
   1.<input type="checkbox"/> 
   2.<input type="checkbox"/> 
   3.<input type="checkbox"/> 
   4.<input type="checkbox"/> 
   5.<input type="checkbox"/> 
</div>

jQuery:

var f=(function(){
    return{
       update:function(t){
          if($(t).is(':checked'))
           {            
                $('#target input[type=checkbox]').prop('checked',true);
           }else{$('#target input[type=checkbox]').prop('checked',false);}
       }
    }
})();
于 2013-10-04T06:48:36.460 回答
0

查看

<div>Select All<input id="all" type="checkbox" checked="true"></div> 

然后

jQuery(function($){
    var $all = $('#all').change(function(){
        $checkboxes.prop('checked', this.checked);
    });
    var $checkboxes = $('input[type="checkbox"]').not($all).change(function(){
        $all.prop('checked', $checkboxes.not(':checked').length == 0);
    });
    $checkboxes.eq(0).change();
})

演示:小提琴

于 2013-10-04T06:58:11.013 回答