Validation 可观测阵列上的多个淘汰验证程序

Validation 可观测阵列上的多个淘汰验证程序,validation,knockout.js,ko.observablearray,Validation,Knockout.js,Ko.observablearray,我试图在一个可观察数组下定义多个自定义验证规则,我指的是 以下是我的observablearray和验证调用: this.WeeklyData = ko.observableArray([]).extend({ validation: [ { validator : fminIncrements, message: 'use 15 min increments' }, {

我试图在一个可观察数组下定义多个自定义验证规则,我指的是

以下是我的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;
};
this.WeeklyData=ko.observearray([]).extend({
验证:[
{
验证人:fminIncrements,
消息:“使用15分钟增量”
},
{
验证器:validateMinax,
消息:“最小值/最大值无效”
}
]
});
var ValidateMinMax=函数(valueArray){
var检查=真;
ko.utils.arrayFirst(值数组,函数(值)){
if(parseInt(value.Val(),10)<0 | | parseInt(value.Val(),10)>168){
检查=错误;
返回true;
}
});
退货检查;
};
var fminIncrements=函数(valueArray){
var检查=真;
ko.utils.arrayFirst(值数组,函数(值)){
if(parseInt(value.Val(),10)%15!==0){
检查=错误;
返回true;
}
});
退货检查;
};
当我这样做的时候,只有第一条规则被触发。我调试过了,第二个都没有。有什么想法吗


提前感谢您的帮助。

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

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