2010-04-29 44 views
67

我已經得到了可以選擇性地通過Facebook預填充連接形式的觸發驗證。一旦用戶連接,他們的姓名和電子郵件會自動填入。問題是這不會觸發遠程驗證以檢查電子郵件是否已存在。jQuery的驗證插件 - 單場

有沒有一種方法我可以打電話給單憑該領域的驗證?喜歡的東西:

$('#email-field-only').validate()

會的想法。通過文檔搜索沒有運氣。

回答

121

這種方法似乎做你想要什麼:

$('#email-field-only').valid(); 
+0

的感謝!我不知道... – brainondev 2012-05-25 14:33:38

+4

注意:表單元素的名字還與這個功能,即'$(「輸入[名稱=電子郵件場只」)有效();'也適用 – Raptor 2012-11-22 07:17:36

+1

什麼問題。 ?當我使用此方法時,我的驗證中斷 – nakajuice 2013-07-03 15:21:08

5

當您設置驗證,你應該保存驗證對象。你可以用它來驗證單個字段。

<script type="text/javascript"> 
var _validator; 
$(function() {  
    _validator = $("#form").validate(); 
}); 

function doSomething() {  
    _validator.element($('#someElement')); 
} 
</script> 

- 交叉貼有this similar question

-6
$("#element").validate().valid() 
14

出於某種原因,一些其他方法都不奏效,直到場一直專注/所迷離/改變,或提交已嘗試...這對我有用。

$("#formid").data('validator').element('#element').valid(); 

已通過jquery.validate腳本挖找到它......

+1

這是我工作,我還添加了'.valid() '最後,所以它找我'$(「#Form」)。data('validator')。element('input [name = __ Suburb]')。valid();'我相信如果你沒有通過ID選擇它,這可能是必需的。 – 2015-01-15 00:10:19

+0

我不認爲'.valid()'屬於表達式的末尾。 '.element()'函數返回布爾結果([docs](https://jqueryvalidation.org/Validator.element/)| [src])(https://github.com/jquery-validation/jquery-validation /blob/1.16.0/dist/jquery.validate.js#L503))。當我嘗試調用.valid()時,我收到錯誤消息:*「Uncaught TypeError:'$(...)。data(...)。element(...).valid'不是函數」* – KyleMit 2017-04-19 15:29:09

+0

您是否將驗證程序附加到表單中?自從我使用JQuery驗證已經過去了幾年...所以這個API可能已經改變了。當時我不得不通過內部工作來找到上面的內容。它沒有在文檔中發佈,所以自從我上次查看以後,結構可能已經發生了變化。 – Tracker1 2017-04-21 11:26:20

7
$("#FormId").validate().element('#FieldId'); 
+1

我更喜歡這種方法,這是一個不錯的1班輪。很好,謝謝。 – Andy 2016-04-01 14:18:51

+1

這是完美的答案,沒有任何錯誤,有效的退貨類型 – 2016-11-04 08:20:24

9

使用Validator.element()

Validates a single element, returns true if it is valid, false otherwise.

下面是API中所示的例子:

var validator = $("#myform").validate(); 
validator.element("#myselect"); 

正如其他人指出的那樣,驗證整個表單。該API說:

Checks whether the selected form is valid or whether all selected elements are valid.

+0

作品,謝謝。 – Andy 2016-04-01 14:18:40

3

如果您想驗證單個表單域,但不希望的UI被觸發並顯示任何驗證錯誤,你可以考慮使用Validator.check()方法返回,如果給定的字段通過驗證或不驗證。

這裏是例子

var validator = $("#form").data('validator'); 
if(validator.check('#element')){ 
    /*field is valid*/ 
}else{ 
    /*field is not valid (but no errors will be displayed)*/ 
} 
+0

我一直在尋找這個答案這麼久! 這是錯誤標籤沒有出現的唯一方式! – 2017-05-09 12:24:47