12

使用 jQueryValidate,我试图使一个字段仅在另一个特定字段为空时才需要。所以,在网上搜索后,我这样做了:

rules: {
     marque: {
          required: {
               depends: function() {
                    if (($('#add_marque').val() == "Ajouter une marque" && $('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) {
                         return true;
                     }
                     else {
                         return false;
                     }
               }
          }
     }
}

不幸的是,它不起作用。但是,如果我这样做:

depends: function() {
     if (($('#add_marque').val() == "Ajouter une marque" && $('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) {
          alert("Here!");
          return true;
      }
      else {
           return false;
      }
}

出现警告框。所以,我的测试似乎有效。谁能告诉我我做错了什么?我将 jQuery 1.8.3 和 qTip2 与 jQueryValidate 一起使用。非常感谢!

4

3 回答 3

12

根据您提供的内容,您对插件的语法和使用是正确的。您需要进行故障排除,因此请先尝试此操作

marque: {
    required: true;
}

简单的。是否出现错误信息?如果是,那么试试这个

marque: {
    required: {
        depends: function () { return true; /* or false */ }
    }
}
于 2013-06-16T09:15:48.567 回答
7

你真的应该能够在没有depends选项的情况下做到这一点,只需让函数直接在required对象上工作:

rules: {
     marque: {
          required:  function() {
                 if (($('#add_marque').val() == "Ajouter une marque" && (('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) {
                     return true;
                 }
                 else {
                     return false;
                 }
          }
     }
}

在这里查看一个更简单的工作示例:http: //jsfiddle.net/ryleyb/3hqH6/1/

于 2013-06-17T15:50:29.133 回答
0
required: {
                    depends:function (element) {
                        if ($('#inter').val() == '11' && $('#inter_rson').val() == '8') {
                            return true;
                        } else if ($('#inter').val() != '11' && $('#inter_rson').val() == '8') {
                            return true;
                        } else if ($('#inter').val() == '11' && $('#inter_rson').val() != '8') {
                            return true
                        } else {
                            return false;
                        }
                     }
                }

正如 August Miller 所说,当元素依赖于其他值时,depends 就像魅力一样。如果你不使用依赖,你可能会卡在一个带有验证错误的屏幕上。

于 2019-10-18T01:12:06.847 回答