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

时间:2011-05-17 14:51:28

标签: jquery checkbox

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

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

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

    }); 

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

1 个答案:

答案 0 :(得分:1)

请试试这个:

$("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);

    }); 

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

HTH