选中6时禁用复选框 – 页面上带有复选框组的多个表单

我在页面上有多个表单,每个表单中都有30个左右的复选框(表单的数量因用户上传而异)。 我需要在选中6个复选框时进行设置,其中未选中的复选框中的其余复选框被禁用。

我可以很简单地用一种forms来解决这个问题 – 比如:

$("input:checkbox").click(function() { var cbk = $("input:checkbox:checked").length >= 6; $("input:checkbox").not(":checked").attr("disabled",cbk); }); 

但这最终会禁用所有表单的复选框。 一直试图找到不同的方法来解决这个问题,但没有太多的运气。 任何和所有的帮助表示赞赏。 谢谢。

请试试这个:

 $("input:checkbox").click(function() { var frm = $(this).closest("form").attr("id");//getting the id of nearest form var cbk = $("#" + frm + " input:checkbox:checked").length >= 6; $("#" + frm + " input:checkbox").not(":checked").attr("disabled",cbk); }); 

逻辑是:找到单击该复选框所在的表单。 并使用该表单作为filter。

HTH