我正在使用敲除验证来验证表单。每个字段都有一组自定义规则。
在我的应用程序中,管理员应该有权从特定字段的预定义规则集中选择一些规则。我将为每个输入字段设置按钮,该字段将打开一个模式,其中将显示所有规则是一个复选框,管理员应该能够从中选择定义自定义参数或消息
我的问题是:如何定义规则然后将它们传递给ko.observable.extend(rules)
,以便我可以在应用程序视图中更改我验证的规则。
我尝试将它们作为字符串发送但没有成功:
var lastNameRules = '{ minLength: 2, required: true }';
var lastName = ko.observable().extend(lastNameRules);
答案 0 :(得分:0)
我设法让它工作,所以我发布了解决方案。我将数组中的规则声明为结构,然后将每个规则应用于observable:
var rules = [{ required: true }, { minLength: 3 }, { maxLength: 10 }];
for (var i = 0; i < rules.length; i++) {
lastName.extend(rules[i]);
}
这样就实现了所有规则。
编辑:其他方法是将一些规则推送到observable的规则数组中:
lastName.rules().push({ rule: "email", params: true });
这样,在添加规则之前必须声明 extend ,因为添加到observable的附加功能。否则,规则数组将不会作为observable中的字段。