所有复选框都需要使用主复选框进行检查和取消选中

时间:2013-05-04 07:19:36

标签: javascript jquery html

任何人都可以帮我吗?

我有两个div个。在一个div中,我有一个名为allcheck的复选框,而在另一个div中,我有一个名为outcheck的复选框。如果我选中multiple,则需要检查所有内容,如果取消选中multiple,则应取消选中所有内容。输入无线电是allcheck的等级。

$('.inputradio').click(function(){

    $("INPUT[name='outCheck']").each(function () {
        if (allCheck.checkbox== true) {//multi check is checked
            this.checked = true;
        } else {
            this.checked = false;
        }
    });
});

HTML

这是主复选框的div

<div id="actions"><div id="box">
<ul><li class="inputradio"><input name="allCheck" type="checkbox" ></li>
<li class="multiple"><a href="#" class="bt btleft">Multiple</a></li>

这是针对儿童复选框:

<ul><li id="outcheckbox"><input name="outCheck" type="checkbox"></li>

即使检查了一个孩子,如果我们选中主复选框,也需要选择所有孩子。我发布的代码只是反过来检查。

3 个答案:

答案 0 :(得分:1)

此代码实现了选择和取消选中所有复选框的功能

选择并取消选择

$(".select-all-checkbox").click(function () {
       $('input:checkbox').prop('checked', this.checked);
   });

如果一个项目取消选择,则按钮CheckAll为UnCheck

$(".mainCheckboxClass")
        .click(
                function() {
                    if ($('input[class=mainCheckboxClass]:checked').length === $('input[class=mainCheckboxClass]').length)
                        $('.select-all-checkbox').prop("checked", true);
                    else
                        $('.select-all-checkbox').prop("checked", false);
});

答案 1 :(得分:-1)

试试这个 -

$('input[name=allCheck]').click(function(){
   $("INPUT[name='outCheck']").prop('checked', this.checked);
});

点击outCheck即可切换名称为allCheck的所有复选框。

请参阅demo


<强>更新

请参阅更新的demo here

这可以按预期工作。如果手动选中所有复选框,则主复选框也会更改,反之亦然,如果未选中一个子项,则主复选框也会取消选中。

答案 2 :(得分:-1)

试试这个:

var $ch = $("input[name='outCheck']").change(function() {
    $all.prop('checked', $ch.filter(':checked').length == $ch.length);
}),
$all = $('input[name=allCheck]').click(function () {
    $ch.prop('checked', this.checked);
});

http://jsfiddle.net/wKgZV/1/

这将根据检查的outcheck个复选框的数量自动选择和取消选中主复选框。