2011-05-17 18 views
0

我在頁面上有多個表單,每個表單中有30個左右的複選框(表單數量因用戶上載而異)。當6個複選框被選中時,我需要設置它,其餘未選中的複選框被禁用。當選中6時禁用複選框 - 帶有複選框組的頁面上的多個表單

我可以整理出一種形式倒也乾脆這麼做 - 類似:

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

    }); 

但這最終禁用複選框所有表格。一直試圖找到不同的方式來解決這個問題,但沒有多少運氣。任何和所有的幫助表示讚賞。謝謝。

回答

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

+0

@ raja - def幫助。爲了使它工作,我不得不在frm var之前添加「#」標記。對上面的代碼片段進行更改。萬分感謝! – 2011-05-17 16:24:37

+0

我很高興它的幫助和感謝做出這一改變:-) – Raja 2011-05-17 17:16:21

相關問題