Javascript 淘汰验证用户定义的规则

Javascript 淘汰验证用户定义的规则,javascript,mvvm,knockout-validation,Javascript,Mvvm,Knockout Validation,我使用敲除验证来验证表单。每个字段都有一组自定义规则 在我的应用程序中,管理员应有权从特定字段的预定义规则集中选择一些规则。我将为每个输入字段设置一个按钮,该按钮将打开一个模式,其中所有规则都将显示为一个复选框,管理员应该能够从中选择一个定义自定义参数或消息 我的问题是:如何定义规则,然后将它们传递给ko.observable.extend(rules),以便在应用程序视图中更改我验证的规则 我尝试将它们作为字符串发送,但没有成功: var lastNameRules = '{ minLengt

我使用敲除验证来验证表单。每个字段都有一组自定义规则

在我的应用程序中,管理员应有权从特定字段的预定义规则集中选择一些规则。我将为每个输入字段设置一个按钮,该按钮将打开一个模式,其中所有规则都将显示为一个复选框,管理员应该能够从中选择一个定义自定义参数或消息

我的问题是:如何定义规则,然后将它们传递给
ko.observable.extend(rules)
,以便在应用程序视图中更改我验证的规则

我尝试将它们作为字符串发送,但没有成功:

var lastNameRules = '{ minLength: 2, required: true }';
var lastName = ko.observable().extend(lastNameRules);

我设法让它工作,所以我张贴解决方案。我将数组中的规则声明为结构,然后将每个规则应用于可观察对象:

var rules = [{ required: true }, { minLength: 3 }, { maxLength: 10 }];

    for (var i = 0; i < rules.length; i++) {
        lastName.extend(rules[i]);
    }
lastName.rules().push({ rule: "email", params: true });
这样,在添加规则之前必须声明扩展,因为添加到可观察对象中的附加功能。否则,在observable中就不会有规则数组作为字段