从jQuery Validate获取所有声明的规则的方法?

时间:2015-04-28 12:54:29

标签: jquery css jquery-validate

如何通过jQuery验证必需字段在JS中循环?特别是我想将.required css类添加到它们中。

编辑:

以下是示例代码:

$("#myForm").validate({
    rules: {
        'firstName': "required",
        'lastName': "required",
         #{get 'jsValidation' /} // some rules come from outside
    }
});

我只需要循环遍历jQuery.validate中标记为“required”的表单字段,并为它们添加一个css类(例如.my_required)。

重要说明!并非所有jQuery.validate必填字段都包含.required css类。

4 个答案:

答案 0 :(得分:4)

没有方法作为jQuery Validate插件的一部分,它会将声明的,已定义的或已分配的规则列表返回给您。但是,.validate()方法中包含的对象文字包含字段列表及其分配的规则。

console.log($("#myForm").validate().settings.rules);

HTML中的字段class和HTML5属性也可以包含jQuery Validate插件选取和使用的规则。

(插件开发人员可能没有看到创建方法只是为了输出你通常会配置的东西,因此首先知道它。)

  

“我只需要遍历jQuery.validate中标记为”required“的表单字段并添加一个css类”

如果某些字段符合required方法的.validate()规则,而其他字段符合required类的.required规则,则无法返回/选择所有字段是“必需的”。因此,如果您不能简单地使用聪明的jQuery选择器和.addClass()方法,那么就没有解决方案。

(实际上,最好的解决方案是控制HTML,以便在整个项目中一致地声明required规则...通过.validate()方法或HTML { {1}}属性,而不是两者的混合。)

答案 1 :(得分:2)

规则对象位于验证器settings之后,如下所示:

var myValidator = $('form').validate({rules: {'name': { 'required' : true } } });

console.log(myValidator.settings.rules); // outputs current rules

答案 2 :(得分:0)

// add class to anything with required attr
$('[required="required"]').addClass('required');

我同意评论中的家伙,但这似乎是多余的。

答案 3 :(得分:-1)

var settings = $.data($("#myForm")[0], "validator").settings
console.log(settings.rules)

查找属性'required'