jQuery Validation Plugin:如何强制validation以前有效的字段?

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

我使用以下检查尝试了.form函数(这是在用户点击’submit’后执行的):

if ($('#form1').validate().form()==false) { formValid = false; } 

但是,似乎上面的代码不会重试validation,因此不会再次检查已成功validation的字段(即在它们旁边打勾)。

想要在以前成功的字段上重试重新validation的原因是它们依赖于远程validation,并且结果(成功或失败)可以在离开字段的用户和单击提交之间发生变化。 (这适用于’用户名’字段)。

如果它影响答案我有多个表单要validation(为简单起见,在上面的代码片段中我只引用’#form1’)。

提前感谢任何建议,

远程字段的validation状态通过$.data()与您要validation的元素一起存储,因此您可以使用.removeData()清除它……所以它被强制重新validation:

 $("#form1 :input").removeData("previousValue"); //now call .valid() 

这会强制检查值是否已更改(我们需要重新validation)为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 

如果只有特定的字段需要重新validation,就像你说的用户名一样,你可能想要将$("#form1 :input")选择器缩小到你想要的字段,以使它更有效率。

当我在研究使用jQuery远程不显眼的validation时,我发现了这个答案。 它不是世界上最好的文档主题,也不是没有怪癖。 所以我最后写了一篇关于我学到的东西的博客文章。 链接在这里,以防有用:

http://icanmakethiswork.blogspot.com/2012/03/jquery-unobtrusive-remote-validation.html