2010-04-29 110 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