0

我正在使用淘汰赛验证来验证表单。每个字段都有一组自定义规则。

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

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

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

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

1 回答 1

0

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

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 中的字段。

于 2013-08-06T11:11:33.277 回答