【问题标题】:multiple knockout validators on an observablearray可观察数组上的多个淘汰验证器
【发布时间】:2013-09-08 12:32:26
【问题描述】:

我尝试在可观察数组下定义多个自定义验证规则,我指的是https://github.com/ericmbarnard/Knockout-Validation/wiki/Custom-Validation-Rules

以下是我的 observablearray 和验证调用:

    this.WeeklyData = ko.observableArray([]).extend({
    validation: [
        {
            validator : fminIncrements,
            message: 'use 15 min increments'
        },
        {
            validator: ValidateMinMax,
            message: "Invalid min/max value"
        }
    ]
    });

var ValidateMinMax = function (valueArray) {
var check = true;
ko.utils.arrayFirst(valueArray, function (value) {
    if (parseInt(value.Val(), 10) < 0 || parseInt(value.Val(), 10) > 168) {
        check = false;
        return true;
    }
});
return check;
};

var fminIncrements = function (valueArray) {
var check = true;
ko.utils.arrayFirst(valueArray, function (value) {
    if (parseInt(value.Val(), 10) % 15 !== 0) {
        check = false;
        return true;
    }
});
return check;
};

当我这样做时,只会触发第一条规则。我调试了,它甚至没有击中第二个。有什么想法吗?

提前感谢您的帮助。

【问题讨论】:

    标签: validation knockout.js ko.observablearray


    【解决方案1】:

    我相信这是因为您使用的是 ko.utils.arrayFirst()。如果您使用 ko.utils.arrayForEach() 代替检查每个案例,那么它不应该在第一次出现时返回。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-02
      • 2014-09-28
      • 2017-12-01
      • 2012-09-08
      • 1970-01-01
      • 2015-10-05
      • 2018-08-02
      相关资源
      最近更新 更多