JQuery 验证规则依赖于另一个规则

JQuery validation rule depends on another rule

我有一个表单,其中必填字段取决于另一个表单字段值。因此,所需的规则可能是真或假取决于其他字段。问题是如果只有要求为真,就应该有接受规则。我该怎么做?

...,
fieldA: {
     maxlength: 3,
     accept: "[0-9]{3}",
     required: function() {
          if($('#fieldB').val() == 'ABCD') {
               return false;
          } else {
               return true;
          }
     }
},...

提前致谢。

不幸的是,您的 required 函数可能只会在呈现表单时被调用,并且不会在独立字段更改时更新相关字段。您可以使用像 react 或 knockout 这样的动态 ui 库,或者您可以简单地将 .change() 处理程序绑定到操纵另一个属性的独立字段。

如果配置不正确,您还可以将某些内容绑定到 .submit() 以阻止提交。

我没有意识到 'accept' 规则是自定义规则。我编辑了代码以检查它是否是可选字段。 this.optional(元素)

jQuery.validator.addMethod("accept", function(value, element, param) {
    return this.optional(element) || value.match(new RegExp("^" + param + "$"));
});

@Barmar 感谢您的帮助。