Проверка KnockOut.js всегда true / errors.length = 0 - PullRequest
0 голосов
/ 19 февраля 2019

Я новичок в использовании плагина проверки корректности knockout js.Мои наблюдаемые находятся на другой функции.но кажется, что User.errors = ko.validation.group (User) и User.errors = ko.validatedObsevable (User) не могут прочитать ошибки / не могут проверить мои обозримые объекты.

Я попробовал некоторые изэтот код скрипты: http://jsfiddle.net/KHFn8/3238/

в этом примере Условия и наблюдаемые находятся в одной функции.

это мой код js:

            var User = function () {
                    this.UserId = ko.observable();
                    this.Fullname = ko.observable().extend({ required: true });
                    this.Username = ko.observable().extend({ required: true });
                    this.StartedDate = ko.observable().extend({ required: true });
                    this.Email = ko.observable().extend({ required: true });
                    this.Facebook = ko.observable().extend({ required: true });
                    this.Address = ko.observable().extend({ required: true });
                    this.MobileNumber = ko.observable().extend({ required: true });
                    this.Birthdate = ko.observable().extend({ required: true });
                    this.PositionId = ko.observable().extend({ required: true });
            }

            UserModel function {

                    self.Save = function () { 

                    if (User.errors().length == 0) {
                        alert(User.errors().length);
                    } else {
                        alert('Please check your submission.');
                        User.errors.showAllMessages();
                    }
            }

            User.errors = ko.validation.group(User);

            ko.applyBindings(new userModel());

Я просто хочудля проверки обязательных полей и отображения сообщения об ошибке на кнопке отправки / сохранения

1 Ответ

0 голосов
/ 19 февраля 2019

хорошо, после попытки в течение 3 дней .. я выясняю, какой ответ ..

Я заменяю User.errors = ko.validation.group (User);к его функции

var User = function(){
    ...
    this.errors = ko.validation.group(this); //change 'user' to 'this'
}

UserModel function {
    self.Save = function () { 
            if (this.errors().length == 0) {
                alert(this.errors().length);
            } else {
                alert('Please check your submission.');
            }
    }
}
ko.applyBindings(new userModel());
...