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

Posted

技术标签:

【中文标题】jQuery Validate Plugin - 触发单个字段的验证【英文标题】:jQuery Validate Plugin - Trigger validation of single field 【发布时间】:2011-02-13 21:35:25 【问题描述】:

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

有没有一种方法可以单独调用该字段的验证?比如:

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

会是个好主意。没有运气搜索文档。

【问题讨论】:

【参考方案1】:

这个方法似乎做你想做的事:

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

编辑

API 已更改,请参阅Paul's answer。

【讨论】:

注意:表单元素名称也适用于此功能,即$('input[name=email-field-only]').valid();也适用 有什么问题?当我使用这种方法时,我的验证会中断 此解决方案验证整个表单,显示所有字段的错误消息。 @haemhweg,也许您在尝试使用 .valid() 之前没有调用 .validate() 方法?文档:jqueryvalidation.org/valid API 已更改,请使用answer provided by Paul【参考方案2】:

使用Validator.element()

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

这是 API 中显示的示例:

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

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

检查选中的表单是否有效或是否全部选中 元素是有效的。

【讨论】:

【参考方案3】:

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

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

必须挖掘 jquery.validate 脚本才能找到它...

【讨论】:

这对我有用,我还在末尾添加了.valid(),所以它会找我$("#Form").data('validator').element('input[name=__Suburb]').valid();我相信如果你不按ID选择它,这可能是必需的。跨度> 我认为.valid() 不属于表达式的末尾。 .element() 函数返回一个布尔结果 (docs | src)。当我尝试调用 .valid() 时,我收到错误消息:"Uncaught TypeError: $(...).data(...).element(...).valid is not a function" 您是否将验证器附加到表单?自从我使用 JQuery 验证以来已经有几年了......所以这个 API 可能已经改变了。当时我不得不通过内部工作来找到上面的内容。它没有在文档中发布,因此自我上次查看以来结构很可能已经改变。【参考方案4】:
$("#FormId").validate().element('#FieldId');

【讨论】:

我更喜欢这种方法,它是一个不错的 1 班轮。效果很好,谢谢。 这是完美的答案,没有任何错误,返回类型有效【参考方案5】:

如果您想验证单个表单字段,但不希望 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)*/

【讨论】:

【参考方案6】:

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

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

function doSomething()     
     _validator.element($('#someElement'));

</script> 

-- 与this similar question交叉发布

【讨论】:

【参考方案7】:

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

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

希望对大家有帮助:)

已编辑

【讨论】:

【参考方案8】:
$("#element").validate().valid()

【讨论】:

以上是关于jQuery Validate Plugin - 触发单个字段的验证的主要内容,如果未能解决你的问题,请参考以下文章

jquery.validate.js

jQuery插件-validate

jQuery的Validate插件

jQuery Validate验证框架详解

jQuery Validate验证框架详解

jQuery Validate验证框架详解