2013-02-12 89 views
-2

我剛剛給了validate(errorElement,...)選項,我設置了規則,沒有調用validate方法,或將它與任何事件關聯,但jQuery自動驗證,如何控制驗證時間?爲什麼jQuery Validate插件在不調用validate()的情況下進行驗證?

+1

請提供代碼示例 – Curt 2013-02-12 10:27:37

+0

您是如何設置jQuery和驗證的?沒有看到你的代碼,這個問題不能以任何合理的形式來回答。 – 2013-02-12 10:27:53

+0

$('form')。validate({errorelement:'span'}); $('input')。rules('add',{min:0}); – 2013-02-12 10:30:02

回答

7

您將需要提供更多關於您想要做什麼的詳細信息,但我可以回答您的問題,因爲您已經撰寫了該問題。

標題:爲什麼jquery驗證沒有調用驗證?

.validate() is called once to initialize the plugin on the form。這不是一種按需觸發驗證的方法。一旦初始化,表單將根據內置於插件中的各種事件回調自動驗證。更多詳細信息如下...

OP:我剛纔給選擇到validate(errorElement,...),我設置 規則,而不調用validate方法,或將其與任何 關聯事件,但jquery自動驗證,如何控制它何時驗證它 ?

您不需要將插件與任何事件關聯,因爲插件已經自動執行此操作。如果沒有,這將是無用的。

When you call .validate(), you are initializing the plugin on the form。所以,是的,這意味着表單現在已準備就緒,並且它會自動執行在所有常見事件上觸發的驗證測試,例如submit,onkeyup,onfocusout,並選擇按鈕&複選框click。你爲什麼不想要那個?

要以編程方式進行驗證測試,您可以撥打the built-in .valid() method這是非常喜歡的submit事件,它會觸發整個窗體的驗證測試和形式將顯示任何錯誤。 .valid()也將返回布爾值truefalse,指示表單是否通過了驗證測試。

如果您只需要在單個元素上觸發驗證測試,而不是整個表單,則可以使用$('#myelement').valid()。再次顯示任何消息並返回一個布爾值。

如果無論出於何種原因需要完全「禁用」和「啓用」驗證,則不能直接執行此操作,因爲沒有內置方法從窗體中取消綁定插件。但是,您可以使用the built-in rules('remove') and rules('add') methods來模擬它。在任何領域沒有任何規則,它只會表現得好像根本沒有驗證一樣。但是,您仍然可以使用其他插件選項,如submitHandler callback,以防萬一您使用ajax進行數據提交。

+0

謝謝,所以我不建議電子書無題「親jquery」,它教這個錯誤的方式 – 2013-02-13 17:05:19

+0

@YounesCh,不客氣。也許你可以編輯你的OP來解釋更多關於本書試圖教給你的內容。 – Sparky 2013-02-13 17:06:47

+0

它表示我們必須爲配置調用一次驗證,如果驗證爲 – 2013-02-13 17:50:30

相關問題