【问题标题】:knockout validation user defined rules淘汰赛验证用户定义规则
【发布时间】:2013-08-05 14:50:43
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: javascript mvvm knockout-validation


    【解决方案1】:

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

    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 });
    

    这种方式 extend 必须在添加规则之前声明,因为添加到 observable 的附加功能。否则将不会有 rules 数组作为 observable 中的字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-15
      • 2017-12-02
      • 1970-01-01
      • 2013-07-01
      • 2016-08-13
      • 2012-02-18
      • 2012-11-04
      • 1970-01-01
      相关资源
      最近更新 更多