1

我在 jQuery Validation 插件中使用“依赖”,以便仅在特定情况下应用一些验证规则。这是我用来做的代码,以防我required只在某些情况下需要一个字段。

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

如果我想使用valueNotEquals规则,我有这样的语法:

fieldA:
 {valueNotEquals: "0"}

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

Attemp 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';}}
4

1 回答 1

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]
}
于 2013-09-30T14:34:06.353 回答