Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 选中6时禁用复选框--在带有复选框组的页面上有多个表单_Jquery_Checkbox - Fatal编程技术网

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

Jquery 选中6时禁用复选框--在带有复选框组的页面上有多个表单,jquery,checkbox,Jquery,Checkbox,我在一个页面上有多个表单,每个表单中都有30个左右的复选框(表单的数量取决于用户上传)。我需要有它设置时,6个复选框被选中,其余的复选框组中,没有选中被禁用 我可以用一种非常简单的形式来解决这个问题,比如: $("input:checkbox").click(function() { var cbk = $("input:checkbox:checked").length >= 6; $("input:checkbox").not(":checked").at

我在一个页面上有多个表单,每个表单中都有30个左右的复选框(表单的数量取决于用户上传)。我需要有它设置时,6个复选框被选中,其余的复选框组中,没有选中被禁用

我可以用一种非常简单的形式来解决这个问题,比如:

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

    }); 
逻辑是:查找单击的复选框所在的表单。并将该表单用作过滤器

HTH

@raja——def帮了大忙。为了使它工作,我必须在frm变量对上面的代码段进行更改之前添加“#”标记。非常感谢!