我有一个表单,其中所需的字段取决于另一个表单字段值。因此,所需的规则可能是真的,也可能是假的,这取决于其他字段。问题是,如果只有必需的为true,则应存在接受规则。我该怎么做?
...,
fieldA: {
maxlength: 3,
accept: "[0-9]{3}",
required: function() {
if($('#fieldB').val() == 'ABCD') {
return false;
} else {
return true;
}
}
},...
提前谢谢。
我没有意识到"accept"规则是一个自定义规则。我编辑了代码以检查它是否是可选字段这个。可选(元素)
jQuery.validator.addMethod("accept", function(value, element, param) {
return this.optional(element) || value.match(new RegExp("^" + param + "$"));
});
@Barmar谢谢你的帮助。
不幸的是,您的required
函数可能只有在表单呈现时才会被调用,并且不会随着独立字段的更改而更新依赖字段。您可以使用像react或knocket这样的dymanic ui库,也可以简单地将.change()处理程序绑定到操纵另一个属性的独立字段。
如果配置不正确,您也可以将某些内容绑定到.submit(),以阻止提交。