如何通过按钮选择所有复选框

时间:2013-07-02 12:04:01

标签: jquery

我想在jquery事件按钮单击上选择所有输入复选框字段,但是当我单击按钮时没有任何反应

JQUERY

$('#selAll').on('click', function() {
   $(".cb").attr('checked', $(this).is(":checked"));
});

HTML

    <input type="button" value="Select All" class="btn" id="selAll" />
    <input type="checkbox" name="a" value="1" class="cb">
    <input type="checkbox" name="b" value="1" class="cb">

这是最好的/正确的解决方案吗?谢谢 JsFiddle example

5 个答案:

答案 0 :(得分:5)

要选中复选框,您应该使用prop()方法:

$('.cb').prop('checked', true);

修改 这是从jQuery API文档中推荐的。我知道你想要切换,可以这样做:

$('.cb').prop('checked', function(i, val) {return !val;}); 

<强> EDIT2: 如果您想通过一个按钮打开/关闭所有复选框,则必须保留某种记录,告诉脚本打开或关闭。最简单的方法是更改​​按钮的标题,并按此方式执行。但这是你的选择。例如:

$('#button').on('click', function(){
  // Change values
  $('.cb').prop('checked', ($(this).val() == 'Check'));
  // Change caption of this button
  $(this).val( ($(this).val() == 'Check' ? 'Uncheck' : 'Check') );
});
// HTML
<input type="button" id="button" value="Check" />

当然,如果您只想要“全部检查”按钮,我的第一个代码示例就适用了。

答案 1 :(得分:3)

<击>

<击>
  $('#selAll').on('click', function() {
    $(".cb").attr('checked', "checked");
  });

<击>

即使.attr()也有效,但在评论部分中建议,推荐的功能是.prop()

$('.cb').prop('checked', true);

http://api.jquery.com/prop/

答案 2 :(得分:0)

我总是使用字符串设置checked属性“checked”,不确定这是否是最好的方法,但它适用于我的情况。

为了让它成功:

变化 $(".cb").attr('checked', $(this).is(":checked"));

$("input.cb").attr('checked', "checked");

这应该有用!

答案 3 :(得分:0)

!前面使用$(this).is(":checked")

$('#selAll').on('click', function () {
    $(".cb").attr('checked', !$(this).is(":checked"));
});

答案 4 :(得分:0)

function selectAll(){

$('.selectedId').attr('checked', isChecked('selectall'));

}

function isChecked(checkboxId){

var id = '#' + checkboxId;

return $(id).is(":checked");

}