2010-05-31 95 views
4

我正在學習JQuery,主要感謝Stack Overflow的積極參考。我需要一個函數來檢查具有相同CSS類的元素中的所有複選框。它應該返回true,如果至少其中一個被選中。元素中還有其他與檢查無關的框。JQuery - 至少有一個複選框被選中

CSS類是不必要的,只有創建一種方法來確定組中的複選框。這感覺是不好的做法,所以任何關於其他方法來確定他們的建議是受歡迎的。

回答

3

無線電由於頁面佈局,按鈕列表不是一個選項。我用自定義驗證器解決了它。

添加此JavaScript函數的頁面

function ValidateDDA(s, a) { 
    a.IsValid = ($(".chk:checked", $('parentDiv')).length > 0); 
} 

然後一個的CustomValidator添加到頁面

<asp:CustomValidator runat="server" ID="cvDDLCorrect" ClientValidationFunction="ValidateDDA" 
ErrorMessage="No hay resuesta correcta" CssClass="error" /> 

就像一個魅力。感謝您的建議。

20

要檢查是否至少一個檢查:

$(".classname:checked", container).length > 0 

「容器」 是(可選的)容器元素。

如果你想避免使用類名進行分組,您應該簡單地給每個複選框相同的名字:

<input type="checkbox" name="group1" value="1" /> 
<input type="checkbox" name="group1" value="2" /> 
<input type="checkbox" name="group1" value="3" /> 

然後你就可以改變測試代碼:

$("[name=group1]:checked").length > 0 
+0

很高興知道。不幸的是,複選框是通過ASP.Net和重寫UniqueID是太多的解決方案。 – Laramie 2010-05-31 06:42:20

+0

爲多個複選框使用相同名稱有什麼意義? (除非你使用PHP並用'[]'結束這個名字)如果用戶只能選擇其中的一個,那麼應該使用一個單選按鈕。如果他可以選擇多個,那麼你會以這種方式失去信息。 – Tgr 2010-05-31 07:04:14

+1

當多個複選框具有相同的名稱時,您不會丟失信息。如果檢查多個項目,則數據將作爲「value1,value2,value3」發佈到服務器 – 2010-05-31 08:32:58

相關問題