jQuery:选择所有选项后选择全局复选框

时间:2012-08-14 19:10:25

标签: jquery

我在这里看到了几个“全部检查”的解决方案,但没有一个在其他方面有效:在选择了所有选项后选择全局复选框。

我有一个小组列表。每个组有4个项目,底部是“取消订阅全部”选项。

到目前为止,我已经能够处理“全部检查”选项,但是当我选择了所有取消订阅选项时,我正在努力检查某个组的“取消订阅全部”选项。

这是迄今为止我所拥有的 DEMO (现在已久)。在底部是我为此提供的一段代码,但当然,它不起作用。

其他功能正常,但是,这个是我需要的人。

非常感谢任何帮助。

感谢。

编辑 - 添加指向小提琴的链接,因为解决方案已隐藏在下面的评论中。感谢剧本的 j08691

DEMO

2 个答案:

答案 0 :(得分:1)

您需要change()事件到radio按钮,如下所示:

$('.opt-out input[type=radio]').on('change', function() {
    var table = $(this).closest('table'),
        checkedBoxes = table.find('.opt-out input[type=radio]:checked').length,
        total = table.find('.opt-out input[type=radio]').length;
        table
           .find('input[type=checkbox].unsubs-chkbx-group')
           .attr('checked', checkedBoxes === total);
});

<强> DEMO

注意

:radio选择器 deprecated is jQuery 1.8

答案 1 :(得分:1)

添加这段代码:

$(".opt-out input:radio").click(function() {
    if($(this).parents('table').find(".opt-out input:checked").length==4)$(this).parents('table').find(".unsubs-chkbx-group").attr('checked','checked');
});

<强> jsFiddle example