1

我有一个网页,上面有 6 个复选框。

<input type="checkbox" name="chk1" id="chk1" class="chkbox"/>
<input type="checkbox" name="chk2" id="chk2" class="chkbox"/>
<input type="checkbox" name="chk3" id="chk3" class="chkbox"/>
<input type="checkbox" name="chk4" id="chk4" class="chkbox"/>
<input type="checkbox" name="chk5" id="chk5" class="chkbox"/>
<input type="checkbox" name="chk6" id="chk6" class="chkbox"/>

使用 jquery 如何检查是否所有这 6 个复选框都被选中,如果所有 6 个复选框都被选中,请选中第 7 个复选框:

<input type="checkbox" name="chk7" id="chk7" class="chkbox"/>

我已经开始编写函数,但不确定这是否是最好的方法:

    function AllSectionsChecked {
        var isChecked1 = $('##chk1').attr('checked')?true:false;
        var isChecked2 = $('##chk2').attr('checked')?true:false;
        var isChecked3 = $('##chk3').attr('checked')?true:false;
        var isChecked4 = $('##chk4').attr('checked')?true:false;
        var isChecked5 = $('##chk5').attr('checked')?true:false;    
        var isChecked6 = $('##chk6').attr('checked')?true:false;                    
    }

任何帮助,将不胜感激。我猜它非常直截了当,但只是在寻找在 jquery 中完成此任务的最佳方法。

更新: * id 和名称是动态创建的,可能没有任何顺序或比例,所以一个 id 可能是 chk51,下一个可能是 chk205,Appologies 我应该把它放在我原来的帖子中 * 谢谢你到目前为止的建议。

非常感谢

4

5 回答 5

1

假设最后一个复选框的 ID 应该是chk7而不是chk5

$('#chk7').prop('checked', $('input[type="checkbox"]:lt(6):checked').length == 6);

示范

于 2012-08-24T12:15:50.307 回答
1

那个怎么样?

$("#chk7").prop("checked", $(".chkbox").filter(function() {
    return /^chk[1-6]$/.test(this.id) && this.checked;
}).length == 6);

演示:http: //jsfiddle.net/FbQUF/

于 2012-08-24T12:16:31.063 回答
0

如果您将特定类添加到要检查的复选框(比如说need),您可以使用:checked 选择器,如下所示:

$("#chk7").prop("checked", $(".need:checked").length === 6);
于 2012-08-24T12:12:02.727 回答
0
var checked = true;
$('.chkbox').each(function(){
   if($(this).is(':checked')) {
       alert('Element with id ' + $(this).attr('id') + ' is checked');
   } else {
       alert('Element with id ' + $(this).attr('id') + ' is unchecked');
       checked = false;
   }
});

if(checked)
     $('#checkbox7').attr("checked","checked");
于 2012-08-24T12:14:12.597 回答
0

这是方式:提琴手演示

<input id="1" name="1" class="chkbox" type="checkbox" />
<input id="2" name="2" class="chkbox" type="checkbox" />
<input id="3" name="3" class="chkbox" type="checkbox" />
<input id="4" name="4" class="chkbox" type="checkbox" />
<br />
<input id="5" name="5" class="chkbox" type="checkbox" />

$('input[type="checkbox"]').on('change', function() {
if (!$('input.paid[type=checkbox]:not(:checked)').length)
    $('input[name=5]').attr('checked','checked');
else
    $('input[name=5]').attr('checked',false);
})
于 2012-08-24T12:16:02.433 回答