本文介绍了如何使用 ko.validation.group 功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用knockout.validation 插件.我创建了一个 exampleViewModel :

I am trying to use knockout.validation plugin. I created an 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 个属性上失败,则此错误属性包含一条错误消息.

In the above view model i created a validation group named errors for the current object. Now if any validation rule fails on any 1 property out of 4 than this errors property contains an error message.

我的问题是,如果我想创建一个只有 3 个属性 (P1, P2, P3) 的验证组,我该怎么做?

My question is , if i want to create a validation group of only 3 properties (P1, P2, P3) out of 4 than how can i do this ?

推荐答案

这对我来说效果很好.与其在 this 上分组,不如创建一个代理对象来保存您要验证的属性.

This worked well for me. Rather than grouping on this, create a proxy object that holds the properties you want validated.

this.errors = ko.validation.group({
    P1: this.P1,
    P2: this.P2,
    P3: this.P3
});

如果您这样做,请考虑使用 validatedObservable 而不是 group.您不仅会收到错误信息,还可以使用 isValid 属性共同检查所有属性是否有效.

If you do this, consider using validatedObservable instead of group. Not only do you get the errors, but you can collectively check if all the properties are valid using the isValid property.

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

这篇关于如何使用 ko.validation.group 功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 19:43