我正在尝试使用knockout.validation插件。我创建了一个exampleViewModel:
function exampleViewModel() {
this.P1 = ko.observable().extend({ required : true });
this.P2 = ko.observable().extend({ required : true });
this.P3 = ko.observable().extend({ required : true });
this.P4 = ko.observable().extend({ required : true });
this.errors = ko.validation.group(this);
}
在上面的视图模型中,我为当前对象创建了一个名为errors的验证组。现在,如果任何验证规则在4个中的任何1个属性上失败,则此错误属性包含错误消息。
My question is
,如果我想创建一个仅包含3个属性(P1, P2, P3)
的验证组,那么我该如何做到这一点?
答案 0 :(得分:58)
这对我很有用。而不是在this
上进行分组,而是创建一个包含要验证的属性的代理对象。
this.errors = ko.validation.group({
P1: this.P1,
P2: this.P2,
P3: this.P3
});
如果您这样做,请考虑使用validatedObservable
代替group
。您不仅会收到错误,还可以使用isValid
属性集体检查所有属性是否有效。
this.validationModel = ko.validatedObservable({
P1: this.P1,
P2: this.P2,
P3: this.P3
});
// is the validationModel valid?
this.validationModel.isValid();
// what are the error messages?
this.validationModel.errors();
答案 1 :(得分:13)
如documentation中所述,仅验证特定可观察量的正确方法是:
this.errors = ko.validation.group([this.P1, this.P2, this.P3]);