检查是否选中了复选框,然后选中另一个复选框
我有一个网页,上面有6个复选框。
使用jquery如何查看是否检查了所有这6个复选框,如果检查了所有6个复选框,请选中复选框7:
我已经开始编写函数但不确定这是否是执行此操作的最佳方法:
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我应该把它放在我原来的post中*谢谢你的建议到目前为止。
非常感谢
假设最后一个复选框的ID应该是chk7
而不是chk5
?
$('#chk7').prop('checked', $('input[type="checkbox"]:lt(6):checked').length == 6);
示范
那个怎么样?
$("#chk7").prop("checked", $(".chkbox").filter(function() { return /^chk[1-6]$/.test(this.id) && this.checked; }).length == 6);
演示: http : //jsfiddle.net/FbQUF/
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");
如果您在要检查的复选框中添加特定类(让我们说need
),您可以使用:checked选择器如下:
$("#chk7").prop("checked", $(".need:checked").length === 6);
这就是方式: Fiddler Demo
$('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); })