Knockout-Validation icon indicating copy to clipboard operation
Knockout-Validation copied to clipboard

Validation on nested objects not working after changing whole object

Open skwasiborski opened this issue 11 years ago • 2 comments

Hi, I have a problem with validating nested objects. I have following view model:

      var ViewModel = function (first) {
           this.person = ko.observable(new Person(first));

           this.changePerson = function () {
               this.person(new Person("changed"));
           };
      };

      var Person = function (first) {
           this.firstName = ko.observable(first).extend({
                required: true
           });
      };

everything works as expected as long as I do not call changePerson function. After calling change if I have element with data-bind="person().firstName" validation messages will not show. Working example (http://jsfiddle.net/MDhUR/). I found a work round to this issue - if I use to bind to firstName everything works as expected (http://jsfiddle.net/seRr5/1/) .

regards.

skwasiborski avatar Jan 28 '14 14:01 skwasiborski

@skwasiborski I've updated your fiddle to make it work - I manually inserted the validation message element. I'll look into this to see where the problem is. Until then, here's the updated fiddle

crissdev avatar Nov 14 '14 09:11 crissdev

I had same problem, nested observables with validation. So the one magic: in self.errors = ko.validation.group(self.submissionAnswers, { deep: true, live: true }); pay attention on special additional param: object that contains field live: true

maksimbykov avatar Jun 05 '19 11:06 maksimbykov