2013-07-01 58 views
12

我想學習jQuery,並且偶然發現了一個奇怪的問題(也許對我來說很奇怪)。所以在這裏: 我在我的應用程序中有一個ID爲mainform的表單。現在我想用jQuery來驗證表單。此外,我想以藍色設置無效字段。對於我添加CSS有效和確認

.error{ 
    background-color:blue; 
} 

當我在控制檯中運行$('form#mainform').valid();,我得到的亮點,一切工作正常。但是,當我運行$('form#mainform').validate();時,我得到大量數據,沒有任何反應。

另外,如果我在validate()之前運行.valid(),各種選項(如錯誤放置等)似乎不起作用。

我想知道這些差異,他們爲什麼表現如此不同以及他們應該在哪裏使用。如果有人能指引我正確的方向,我將不勝感激。

注:我使用jquery.validate.js

+2

鏈接到您正在使用的庫可能是一個好主意。 Afaik,這不是核心方法。 – OptimusCrime

+1

你有沒有看過文件? [valid()](http://jqueryvalidation.org/valid/)vs [validate()](http://jqueryvalidation.org/validate/)!?假設你在使用validaton插件,如果沒有,你使用哪一個? – luk2302

+0

是的。鏈接你正在使用的庫來驗證表單。 –

回答

17

有有效和驗證之間的幾個差別。有趣的是,儘管該文檔指出

這是不實際的情況下「驗證需要被窗體上使用該方法 檢查它之前稱作」,爲有效呼叫驗證()無論如何。

的兩個主要區別是

  1. 如果你想傳遞選項到插件,你必須調用的validate({...})
  2. 的validate()不突出任何錯誤,而有效()。你可以說有效的執行'渴望'驗證,而驗證設置'懶惰'驗證,基本上如果你調用validate(),你將不會在頁面上看到任何立即改變,而使用valid()你可能會看到。 。
  3. 有效可在形式元素的子集被調用,而驗證必須在表格本身上可以稱爲:

    $(「形式」)來驗證({/ *選擇這裏* /});

    $('。myfields')。有效()

+0

感謝您的信息。我瀏覽了文檔,並沒有得到更好的結果。我的觀點是,無論如何,'validate()'有什麼用處? –

+1

它設置了懶惰驗證 - 在文檔準備就緒時調用它。有這些例子http://jquery.bassistance.de/validate/demo/ –

+0

「作爲有效的調用驗證()無論如何」這是根據文檔倒退:http://jqueryvalidation.org/valid/ –