jQuery Validate Plugin-触发单个字段的验证


89

我有一个可以通过facebook connect预先填充的表格。用户连接后,他们的姓名和电子邮件将自动填写。问题在于,这不会触发远程验证来检查电子邮件是否已存在。

有没有办法我可以单独对该字段进行验证?就像是:

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

会的。搜索文档,没有运气。

Answers:


146

此方法似乎可以满足您的要求:

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

4
注意:表单元素名称也可以与此功能一起使用,即$('input[name=email-field-only]').valid();也可以使用
Raptor 2012年

1
问题是什么?当我使用这种方法时,我的验证就
失败

2
此解决方案将验证整个表单,并显示所有字段的错误消息。
Pablo

@haemhweg,也许你没有调用.validate()试图用前法.valid() ?docs:jqueryvalidation.org/valid
userfuser

1
API已更改,请使用Paul
Anima-t3d

23

用途Validator.element()

验证单个元素,如果有效则返回true,否则返回false。

这是API中显示的示例:

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

.valid()正如其他人指出的那样,验证整个表单。API说:

检查所选表单是否有效或所有所选元素是否有效。


20

出于某种原因,在该领域被聚焦/模糊/更改或尝试提交之前,其他一些方法不起作用...这对我有用。

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

不得不仔细研究jquery.validate脚本才能找到它...


1
这就是对我有用的方法,我也在.valid()末尾添加了它,因此它在找我,$("#Form").data('validator').element('input[name=__Suburb]').valid(); 我相信如果您不按ID选择它,则可能需要这样做。
Mihai P.

2
我认为.valid()表达式的末尾不属于。该.element()函数返回一个布尔结果(docs | src)。当我尝试调用.valid()时,出现错误消息:“ Uncaught TypeError:$(...).data(...).element(...).valid不是函数”
KyleMit

您是否在表单上附加了验证器?自从我使用JQuery验证已经过去了几年了...因此,此API可能已更改。当时,我必须仔细研究内部结构才能找到上面的内容。它没有在文档中发布,因此自上次查看以来,结构可能已经发生了变化。
Tracker1

16
$("#FormId").validate().element('#FieldId');

2
我喜欢这种方法,这是一个不错的1班轮。很好,谢谢。
安迪

1
这是正确的返回类型,没有任何错误的完美答案
Kaushik Thanki

7

设置验证时,应保存验证器对象。您可以使用它来验证各个字段。

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

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

-交叉发布与此类似的问题


7

如果要验证单个表单字段,但又不想触发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

如果您想对表单上的“某些元素”(不是所有元素)进行验证。您可以使用以下方法:

$('input[name="element-one"], input[name="element-two"], input[name="element-three"]').valid();

希望对大家有帮助:)

已编辑


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.