我的淘汰赛模型验证存在以下问题,不知道如何解决。首先是我的模型,带有验证规则:
var Data = function (data) {
this.Val = data;
}
function ViewModel(item) {
var parse = JSON.parse(item.d);
var self = this;
this.Name = ko.observable(parse.Name);
this.UserType = ko.observable(parse.UserType);
this.ID = ko.observable(parse.ID).extend({ required: { params: true, message: "ID is required" }, decimal: { params: 2, message: "Should be decimal"} });
this.Username = ko.observable(parsed.Username).extend({ required: {
onlyIf: function () {
return self.UserType() > 1;
}
}
});
this.WeeklyData = ko.observableArray([]);
var records = $.map(parse.WeeklyData, function (data) { return new Data(data) });
this.WeeklyData(records);
this.WeeklyData2 = ko.observableArray([]);
var records = $.map(parse.WeeklyData2, function (data) { return new Data(data) });
this.WeeklyData2(records);
}
ko.extenders.numeric = function (target, precision) {
var result = ko.dependentObservable({
read: function () {
return target().toFixed(precision);
},
write: target
});
result.raw = target;
return result;
};
这是我的问题:
1) 对于可观察的 ID(),我想将其限制为两个小数点,因此我创建了验证扩展器“数字”,但它不起作用。我如何使用它以及如何纠正它有什么问题吗?
2)另外,如果我想将一个可观察对象限制为整数,我该怎么做?
3)当我定义一个带有条件的规则时,(即用户名()),我如何定义一个自定义消息?我能够为默认规则做到这一点,但使用条件规则,它不起作用
4) 我有两个可观察的数组 WeeklyData1 和 WeeklyData2 都包含 Data() 对象。我想为这两个设置单独的最小/最大规则,例如,WeeklyData1 的 min/max - 1,7 和 WeeklyData2 的 min/max - 1,150。我怎样才能完成它?
4)现在我的错误消息出现在数据字段旁边,但我希望所有这些都出现在一个验证摘要中,同时针对该字段显示“*”。有人告诉我使用Validation-bindings,但我不确定如何使用它,有人可以举个例子吗?
我知道这是很多问题,但如果有人可以提供帮助,我将不胜感激。
提前致谢