【问题标题】:Disable checkboxes when 6 are checked -- multiple forms on page with checkbox groups选中 6 个复选框时禁用复选框 - 页面上有多个带有复选框组的表单
【发布时间】:2011-05-18 00:42:51
【问题描述】:

我在一个页面上有多个表单,每个表单中有 30 个左右的复选框(表单的数量取决于用户上传的内容)。当检查了6个未检查的复选框中,我需要进行设置。

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

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

    }); 

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

【问题讨论】:

    标签: jquery checkbox


    【解决方案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

    【讨论】:

    • @raja -- def 帮了大忙。为了使它工作,我必须在 frm var 之前添加“#”标记。对上面的 sn-p 进行了更改。非常感谢!
    猜你喜欢
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多