0
votes

I'm new on using knockout js validation plugin. My observables are on the other function. but it seems like the User.errors = ko.validation.group(User) and User.errors = ko.validatedObsevable(User) can't read the errors / cant validate my obsevables.

I tried some of this fiddle code: http://jsfiddle.net/KHFn8/3238/

in that example, Conditions and observables are on the same function.

this is my js code:

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

I just want to validate the required fields and show error message on submit/save button

1

1 Answers

0
votes

okay, after trying for 3days.. i figure out what's the answer..

I re-place User.errors = ko.validation.group(User); to its function

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