检查是否选中了复选框,然后选中另一个复选框

时间:2012-08-24 12:09:29

标签: jquery checkbox

我有一个网页,上面有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中寻找实现这个目标的最佳方法。

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

非常感谢

5 个答案:

答案 0 :(得分:1)

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

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

DEMONSTRATION

答案 1 :(得分:1)

那怎么样?

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

DEMO: http://jsfiddle.net/FbQUF/

答案 2 :(得分:0)

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

$("#chk7").prop("checked", $(".need:checked").length === 6);

答案 3 :(得分: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");

答案 4 :(得分:0)

这就是:Fiddler Demo

<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);
})