如何在jQuery Validation插件中的valueNotEquals规则中添加“依赖”条件?

时间:2013-09-30 12:06:22

标签: jquery jquery-validate

我在jQuery Validation插件中使用“depend”,以便仅在特定情况下应用某些验证规则。这是我用来执行此操作的代码,以防我在某些情况下只需要字段required

 fieldA: {
required: {depends: function () {
        return $('#FormName select[name="fieldB"]').val() === '10';
    }}
 }

如果我想使用valueNotEquals规则,我的语法如下:

fieldA:
 {valueNotEquals: "0"}

如果我想使用“依赖”,那么正确的语法是什么?这两次尝试都给出了错误和语法错误。

尝试1 (错误,因为我无法指出它必须不等于什么值)

fieldA:
     {valueNotEquals: {depends: function () {
         return $('#QuestionarioForm select[name="lavoroMadre"]').val() === '10';}}

尝试2 (语法错误)

fieldA:
     {valueNotEquals: "0" {depends: function () {
         return $('#QuestionarioForm select[name="lavoroMadre"]').val() === '10';}}

1 个答案:

答案 0 :(得分:3)

您的代码:

fieldA:
 {valueNotEquals: "0"}

引用标题

  

“如何在jQuery Validation插件中的valueNotEquals规则中添加”依赖“条件?”

您的代码无效,因为在jQuery Validate插件中没有名为valueNotEquals 的规则或方法。

记录规则&方法http://jqueryvalidation.org/category/methods/


您必须使用addMethod()编写自己的自定义规则:

jQuery.validator.addMethod("valueNotEquals", function(value, element, params) {
    return this.optional(element) || (value != params[0]);
}, "Please specify a value that is not equal to {0}");

宣布规则:

fieldA: {
    valueNotEquals: [0]
}

自定义方法的演示http://jsfiddle.net/cF3p5/


现在您不需要使用depends。只需编辑此自定义功能,使其行为符合您的要求。也许更像这样......

jQuery.validator.addMethod("valueNotEquals", function(value, element, params) {
    if ($('#QuestionarioForm select[name="lavoroMadre"]').val() === params[1]) {
        return (value != params[0]);
    } else {
        return true;
    }
}, "Please specify a value that is not equal to {0}");

宣布规则:

fieldA: {
    valueNotEquals: [0, 10]
}