Как использовать функцию ko.validation.group
Я пытаюсь использовать плагин 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);
}
В приведенной выше модели представления я создал группу проверки с именованными ошибками для текущего объекта. Теперь, если какое-либо правило проверки выходит из строя на каком-либо 1 свойстве из 4, это свойство ошибки содержит сообщение об ошибке.
My question is
, если я хочу создать группу проверки только из 3 свойств (P1, P2, P3)
из 4, чем я могу это сделать?
Ответы
Ответ 1
Это сработало для меня. Вместо группировки на 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();
Ответ 2
Как описано в документации, правильный способ проверки только определенных наблюдаемых данных:
this.errors = ko.validation.group([this.P1, this.P2, this.P3]);