我正在尝试学习 jQuery,并且偶然发现了一个奇怪的问题(也许只有我觉得奇怪)。所以这里是:
我的应用程序中有一个 id mainform
的表单。现在我想用 jQuery 验证表单。我还想将无效字段设置为蓝色。为此我添加了 css
.error{
background-color:blue;
}
当我在控制台中运行 $('form#mainform').valid();
时,我得到了突出显示,一切正常。但是,当我运行 $('form#mainform').validate();
时,我收到了大量数据,但没有任何反应。
此外,如果我在 validate()
之前运行 .valid()
,各种选项(例如错误放置等)似乎不起作用。
我想知道它们之间的区别,为什么它们的行为如此不同以及它们应该在哪里使用。如果有人能指出我正确的方向,我将不胜感激。
注意:我正在使用 jquery.validate.js
最佳答案
有效和验证之间存在一些差异。有趣的是,尽管文档指出
"validate needs to be called on the form before checking it using this method"
实际情况并非如此,因为 valid 无论如何都会调用 validate()。
两个主要区别是
- 如果要将选项传递给插件,则必须调用 validate({...})
- validate() 不会突出显示任何错误,而 valid() 会突出显示。您可以说 valid 执行“急切”验证,而 validate 设置“惰性”验证,基本上,如果您调用 validate(),您不会在页面上看到任何立即更改,而使用 valid() 则可能会看到。
valid 可以在表单元素的子集上调用,而 validate 必须在表单本身上调用:
$('form').validate({/* 这里有选项 */});
$('.myfields').valid()
关于jquery - 有效与验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17404188/