2012-11-22 110 views
0

我無法通過jQuery驗證來確保複選框字段已被選中。其他領域驗證罰款。無法通過jQuery驗證來驗證複選框字段

這裏是我的JS:

$(".my-form").validate({ 
    errorLabelContainer: ".form-errors", 
    wrapper: "li", 
    rules: { 
    cf_enquiry_accept_terms_cond: "required" 
    }, 
    messages: { 
    cf_enquiry_accept_terms_cond: "You must accept our terms and conditions" 
    }, 
}); 

而對於複選框字段的HTML(我沒有控制,因爲它是自動生成的帶有CMS標籤):

<div> 
    <label for="cf_enquiry_accept_terms_cond">Accept Terms &amp; Conditions</label> 
    <input type="hidden" name="cf_enquiry_accept_terms_cond" value="n" /> 
    <label><input type="checkbox" name="cf_enquiry_accept_terms_cond[]" value="Yes" />&nbsp;Accept Terms & Conditions</label> <div style="clear:left"></div> 
</div> 

任何想法我在哪裏錯了?我複製了demo on the jQuery validate page的規則/消息。

+0

'$( 'myForm的')'搜索與類 'myForm的' 元素......你確定你沒意味着通過ID搜索? (#) – Shadow

+0

.my-form絕對正確。我有相同形式的文本字段完美驗證,但我從我的例子中剝離他們,以保持這個問題簡單。 – Stephen

+0

cf_enquiry_accept_terms_cond複選框的括號是什麼? – Muleskinner

回答

0
<input type="checkbox" name="cf_enquiry_accept_terms_cond[]" value="Yes" /> 

應包括id元素,應該是

<input type="checkbox" id="cf_enquiry_accept_terms_cond" name="cf_enquiry_accept_terms_cond[]" value="Yes" /> 
+0

爲什麼? Oo另外,如果你保留這個模式,你最終會得到重複的ID,這是一個很大的不允許的... – Shadow

+1

規則適用於ID不在輸入名稱 –

+0

我無法輸入ID,因爲此字段是由CMS標籤自動生成。儘管所有字段都有這些名稱字段。 – Stephen