jquery 验证器:自定义条件规则

jquery validator: custom conditional rule

我有一个 html select,第一个选项值为“”。我正在使用自定义规则验证它:

   $.validator.addMethod("requiredSelect", function (value, element, arg) {
      return arg != value;
   }, "Required field.");

然后做:

dropdownField: {
   requiredSelect: ""
},

现在我需要让它成为有条件的,所以只有当给定的复选框被选中时才需要它。如果不使用自定义规则,我会做类似的事情:

dropdownField: {
   required:'#myCheckbox:checked'
},

但是我怎样才能让我的自定义验证器有条件呢?

只需将 OR 运算符 (||) 添加到 returned 表达式,这样您还可以检查复选框的 checked 状态:

$.validator.addMethod("requiredSelect", function (value, element, arg) {
  return !(arg !== value || $('#myCheckbox').is(':checked'));
}, "Required field.");

当一个或多个条件为真时,您的验证器将 return 假,换句话说,当未选中复选框时,您肯定会将该字段标记为有效。