声明jQueryvalidation插件规则 – 属性与类和代码

在jQuery Validate插件的示例中,我看到了三种不同的方法来声明validation规则:

  • CSS类 – 例如
  • 属性 – 例如
  • JS代码 – 例如$("#myForm").validate({ rules: { whatever: "required", ... } });

但我没有在文档中看到任何解释为什么你使用其中一个的原因。 我也没有看到如何在每种方法中使用validation方法的解释(例如,如何将“max(value)”方法与tag属性或css类一起使用?)。

这三种方法之间的权衡是什么? 您如何使用每种方法声明所有不同的validation方法?

您可以通过数据规则属性应用规则。 这是最简单的方法,可能是维护干净代码的最佳方式……

例:

 

您甚至可以通过数据属性提供消息:

  

在JavaScript中只需调用:

 $('#myform').validate(); 

从文档http://jqueryvalidation.org/rules :

有几种方法可以指定validation规则。

  • 没有参数的validation方法可以指定为元素上的类(推荐)
  • 带参数的validation方法可以指定为属性(推荐)
  • 两者都可以使用元数据插件指定为元数据[[[请注意,这已被弃用,因此文档似乎过时了]]]
  • 两者都可以使用validate() – 方法的rules-option指定

https://stackoverflow.com/a/14380401/749227有一些额外的有用信息。

不过,我更喜欢在类上使用’required’属性。 我没有发现这种原生属性支持它在文档中直接引用,但是因为看起来屏幕阅读器会发现它比class =“required”更有用,所以在这种情况下我会使用它。

顺便说一下,我很想看看插件是否尊重其他原生属性。 以及关于哪些被ADT选中的信息。

在回答您的具体问题时:

“你如何使用带有标签属性的”max(value)“方法”

  

“你如何使用”max(value)“方法和… CSS类”

您无法执行此操作,请使用其他方法来设置规则。

你可以使用data-rule-required属性,请不要使用jquery.metadata.js,我在jQuery Validation Plugin 1.11.1中测试过