JQuery验证规则取决于另一个规则

时间:2016-04-19 03:33:12

标签: jquery jquery-validate

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

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

@Barmar感谢您的帮助。

答案 1 :(得分:0)

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

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