JQuery验证addClassRules结合了多个规则

时间:2015-04-02 09:47:55

标签: jquery jquery-validate

我正在映射css类名不同的规则如何避免重复addClassMethod并只使用一次?

var cssClasses = {
        rules   : {
            required: 'validate-required',
            validateNumber: 'validate-number', 
            validateEmail: 'validate-email'
        }
    }


$.validator.addClassRules( selectors.rules.required,  {
    required: true
});

$.validator.addClassRules( selectors.rules.validateNumber,  {
    number: true,
});

$.validator.addClassRules( selectors.rules.validateEmail,  {
    email: true
});

试图像这样创建一个addClassRules方法,但这不起作用

$.validator.addClassRules( selectors, {

        rules: {

            required: {
                required: true
            },
            validateNumber: {
                number: true
            },
            validateEmail: {
                email: true
            }

        }

  });

1 个答案:

答案 0 :(得分:2)

  

“我正在映射css类名不同的规则......”

为什么呢?将这些规则映射到一个类时没有任何意义,只需将它们作为类名单独使用就可以分配这些规则。

<input class="required number email" ....

否则,.addClassRules()完整目的是创建一个“复合”规则,可以使用单个自定义类将其分配给该字段。 / p>

<input class="myClassRule" ....
  • 如果您只想将一个规则分配给一个类,那么使用.addClassRules()方法是没有意义的,因为每个规则(布尔规则)都可以表示为一个类。

  • Object Literal由key: value对组成,表示具有规则列表的类名。 rules选项与.addClassRules()无关,也不在此方法内。

  • 这些新的addClassRules规则仅由类指定,这些不是您可以在.validate()方法中使用的。


示例1

$.validator.addClassRules( "yourClass", {
    required: true,
    number: true,
    email: true
});

将课程yourClass应用于表单字段时,requirednumberemail规则将生效。

<input class="yourClass" ...

示例2 ,一次创建多个不同的类规则。

$.validator.addClassRules({
    classFoo: {
        required: true,
        number: true
    },
    classBar: {
        required: true,
        email: true
    }
});

当课程classFoo应用于表单字段时,required&amp; number规则将生效。将课程classBar应用于表单字段时,required&amp; email规则将生效。

<input class="classFoo" ....
<input class="classBar" ....

  

“试图像这样创建一个addClassRules方法,但这不起作用”

如上所述构造不正确。 Please refer to the documentation for .addClassRules()

更多组合规则的方法......

jQuery Validation Plugin - adding rules that apply to multiple fields

How can we specify rules for jquery validation plugin by class?