14

我正在尝试学习 jQuery,但偶然发现了一个奇怪的问题(也许只对我来说很奇怪)。所以这里是:我的mainform应用程序中有一个带有 id 的表单。现在我想用 jQuery 验证表单。我还想将无效字段设置为蓝色。为此,我添加了 css

.error{
  background-color:blue;
}

当我$('form#mainform').valid();在控制台中运行时,我得到了亮点并且一切正常。但是,当我运行时$('form#mainform').validate();,我得到了很多数据并且没有任何反应。

此外,如果我.valid()之前运行validate(),错误放置等各种选项似乎不起作用。

我想知道它们之间的区别,为什么它们的行为如此不同以及应该在哪里使用它们。如果有人能指出我正确的方向,我将不胜感激。

注意:我正在使用 jquery.validate.js

4

2 回答 2

21

valid 和 validate 之间有几个区别。有趣的是,尽管文档指出

“在使用此方法检查表单之前,需要在表单上调用验证”

实际上并非如此,因为无论如何都是有效的调用 validate() 。

两个主要区别是

  1. 如果要将选项传递给插件,则必须调用 validate({...})
  2. validate() 不会突出显示任何错误,而 valid() 会。您可以说 valid 执行“急切”验证,而 validate 设置“惰性”验证,基本上,如果您调用 validate(),您将不会在页面上看到任何立即更改,而使用 valid() 您可能会看到。
  3. valid 可以在表单元素的子集上调用,而 validate 必须在表单本身上调用:

    $('form').validate({/* 这里的选项 */});

    $('.myfields').valid()

于 2013-07-01T14:47:24.133 回答
1

假设您使用的是 Jquery 验证库。

文档说

在使用 valid() 方法检查表单之前,需要在表单上调用 validate()。

不是 。valid() 在validate( ) 之前

http://jqueryvalidation.org/valid/

http://jqueryvalidation.org/validate

于 2013-07-01T12:14:03.967 回答