jQuery验证插件:如何强制验证以前有效的字段?

jQuery验证插件:如何强制验证以前有效的字段?,jquery,forms,jquery-validate,Jquery,Forms,Jquery Validate,我正在使用jQuery验证插件来验证表单。您知道如何对以前成功的字段强制重新验证吗 我使用以下检查尝试了.form函数(这是在用户单击“提交”后执行的): 但是,上面的代码似乎没有重试验证,因此不会再次检查已成功验证的字段(即旁边有勾号) 希望对以前成功的字段重试重新验证的原因是,这些字段依赖于远程验证,并且结果(成功或失败)可能会在用户离开字段和单击提交之间发生变化。(这适用于“用户名”字段) 如果它影响答案,我有多个表单要验证(为了简单起见,在上面的代码片段中,我只提到了“#form1”)

我正在使用jQuery验证插件来验证表单。您知道如何对以前成功的字段强制重新验证吗

我使用以下检查尝试了.form函数(这是在用户单击“提交”后执行的):

但是,上面的代码似乎没有重试验证,因此不会再次检查已成功验证的字段(即旁边有勾号)

希望对以前成功的字段重试重新验证的原因是,这些字段依赖于远程验证,并且结果(成功或失败)可能会在用户离开字段和单击提交之间发生变化。(这适用于“用户名”字段)

如果它影响答案,我有多个表单要验证(为了简单起见,在上面的代码片段中,我只提到了“#form1”)

提前感谢您的建议


Rob

远程字段的验证状态通过与要验证的元素一起存储,因此您可以使用来清除该状态…因此,必须重新验证:

$("#form1 :input").removeData("previousValue");
//now call .valid()
这将强制检查值是否已更改(我们需要重新验证)为
true

//This code is in the validation plugin for remote:
var previous = this.previousValue(element);
if (previous.old !== value) { //this is normally false, since it hasn't changed

如果只有特定字段需要重新验证,如您所说的用户名,那么您可能希望将
$(“#form1:input”)
选择器缩小到您想要的字段,以提高效率。

我在研究使用jQuery远程不引人注目的验证时发现了这个答案。这不是世界上记录最好的话题,也不是没有怪癖。如此之多以至于我最终写了一篇关于我所学到的东西的博客文章。如有帮助,请链接此处:


非常好-这完全清除了验证,谢谢Nick。。。尽管出现了另一个问题!因为它现在正在重新验证所有表单,我在javascript中得到一个错误:“未能加载资源:已取消”。只有当页面上有多个表单时才会出现问题(这是用户驱动的操作,因为表单是动态创建的)。有什么建议吗?@Rob-我只想用这个清除远程选项,这样可以省去很多麻烦,你能用一个比我上面更具体的选择器吗?另外,我只会重新验证您提交的表单。通过一些调试,当同时为两个同名表单输入调用.validate().form()时,似乎会出现“加载资源失败”错误。我需要检查提交时的所有输入,这样即使有最具体的选择器也会产生问题。如果我通过用户驱动的操作(例如单击“验证”按钮)在每个表单上依次手动调用.validate().form(),则不会发生此错误。。。因此,我似乎需要按顺序验证表单(即,仅在成功验证第一个表单后调用下一个表单的验证)。。。有什么建议吗?@Rob-我不太确定,你在描述一个非常奇怪的问题……你有一个页面可以让我看一下,看看是怎么回事吗?@NickCraver:谢谢
.removeData(“以前的值”)。我遇到了这个问题,这个问题解决了:-)
//This code is in the validation plugin for remote:
var previous = this.previousValue(element);
if (previous.old !== value) { //this is normally false, since it hasn't changed