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 - 触发单个字段的验证的主要内容,如果未能解决你的问题,请参考以下文章