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

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

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

Attemp 2 (语法错误)

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

你的代码:

 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 。 只需编辑此自定义function,使其行为符合您的要求。 也许更像是这样……

 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] }