Javascript 使用最大大小和自定义验证器进行淘汰可选验证?

Javascript 使用最大大小和自定义验证器进行淘汰可选验证?,javascript,jquery,validation,knockout.js,Javascript,Jquery,Validation,Knockout.js,我有一个VM,它有多个表单,所有表单都经过验证。为了支持多个表单,我想我必须实现淘汰可选验证。 我的表单中有许多验证。如maxLength,minlength,必需和一个自定义验证 验证如下所示 @password = ko.observable("").extend({ required: true, minLength: 5}) @current_password = ko.observable().extend({ validation: { validator: @mustE

我有一个VM,它有多个表单,所有表单都经过验证。为了支持多个表单,我想我必须实现淘汰可选验证。 我的表单中有许多验证。如
maxLength
minlength
必需
和一个自定义验证

验证如下所示

@password = ko.observable("").extend({ required: true, minLength: 5})
@current_password = ko.observable().extend({
      validation: { validator: @mustEqual, message: 'Passwords do not match.', params: @password }
    })
现在,为了使上述验证成为可选的
isLoggedIn
,我使用

@password  = ko.observable().extend
  required:
    onlyIf: () =>
      !@isLoggedIn()

但它只适用于
必需的
。我还希望它用于
minLength
自定义验证器
。如何做到这一点?

只有当可以与所有验证器一起使用时,像这样(fiddle,来自github示例的fork:):

来自验证源的示例:

条件验证文档:

也许我们应该和其中一位维护人员谈谈,在手册中更清楚地说明这一点,或者在本页中添加一些带有onlyf的示例

 self.testField = ko.observable(5).extend({
        max:{
            onlyIf:function() { return self.country() === 'US'},
            params:5
        }
    });