2011-09-21 289 views
4

我只想检查页面上的所有复选框,如果用户单击“全选”按钮。使用jQuery选择所有复选框

在机身:

<button id="checkall">Select All</button> 

的jQuery:

<head> 

    <script type="text/javascript" src="js/jquery.js"></script> 

    <script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#checkall').click(function() { 
      $("input[type=checkbox]").each(function() { 
      $(this).attr('checked', true); 
     }); 
    }); 
    </script> 
</head> 

而且复选框被PHP的一点点发生:

echo '<li>'; 
echo '<input type="checkbox" name="checkbox[]" value="'.$x.'" />'.$x.'<br/>'; 
echo '</li>'; 

谁能告诉我是什么”米做错了吗?

回答

10

你不需要每个语句。只需选中所有复选框并设置属性checked = true

$(document).ready(function(){ 
    $('#checkall').click(function() { 
     $("input:checkbox").prop('checked', true); 
    }); 
}); 

注意jQuery.prop()是一个添加到1.6及以上的功能。如果你使用的是1.6以前版本的jQuery,你将需要下面的内容。

$(document).ready(function(){ 
    $('#checkall').click(function() { 
     $("input:checkbox").attr('checked','checked'); 
    }); 
}); 
+0

牢记这只会检查框。其他代码将需要取消选中。 –

+1

这个技巧。感谢一堆! –

+1

没问题......很高兴我能帮上忙。请接受正确的答案。 –

1

而是与标签名称选择复选框,更好地为它分配一些类与类名

$(document).ready(function(){ 
     $('#checkall').click(function() { 
      $(".checkbox").each(function(i,chkbox) { 
      $(chkbox).attr('checked', true); 
     }); 
    }); 
    }); 

PHP代码

    echo '<li>'; 
       echo '<input type="checkbox" class="checkbox" name="checkbox[]" value="'.$x.'" />'.$x.'<br/>'; 
       echo '</li>'; 
+0

这仍然有一个'});''太少了,'.each'在这里有点多余。 – pimvdb

+0

感谢您的建议 –

0

你只是错过});.each(function(){}语句选择它的!其他没有错误!

$(document).ready(function() { 
    $('#checkall').click(function() { 
     $("input[type=checkbox]").each(function() { 
      $(this).attr('checked', 'checked'); 
      // or 
      // $(this).attr('checked', true); 
     }); // you missed this one!!! 
    }); 
}); 
+0

'jQuery.each()'不需要。 –

0

这会工作,短期和方便代码

<script> 
    $('#check_all').click(function() { 
    $(this).closest('form').find(':checkbox').prop('checked' , this.checked ? true : false); 
}) 
</script>