有效与验证

时间:2013-07-01 12:10:07

标签: jquery jquery-validate

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

.error{
  background-color:blue;
}

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

此外,如果我在.valid()之前运行validate(),则各种选项(例如错误放置等)似乎都无效。

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

注意:我使用的是jquery.validate.js

2 个答案:

答案 0 :(得分:18)

有效和验证之间存在一些差异。有趣的是,虽然文档说明了

  

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

事实并非如此,因为无论如何有效调用validate()。

两个主要的区别是

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

    $('form')。validate({/ * options here * /});

    $(”。myfields')。有效()

答案 1 :(得分:1)

假设您正在使用Jquery验证库。

Docs saying

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

validate()。

valid()

之前不是。validate()

http://jqueryvalidation.org/valid/

http://jqueryvalidation.org/validate