Knockout rollback check disables check

I have ko.observableArrays with element check. The user can mark the item as deleted. When it is marked as deleted, I need to disable verification of this item.

How do you dynamically disable validation?

Example: http://jsfiddle.net/3RZjT/2/

<div data-bind="foreach: names"> <input data-bind="value: name, valueUpdate: 'afterkeydown'" /> <a data-bind="click: deleteMe, text:deleted()?'undelete':'delete'" href="#">delete</a><br/> </div> function Person(name){ var self = this; self.name = ko.observable(name).extend({ required: true}); self.deleted = ko.observable(false); self.deleteMe = function(){ self.deleted(!self.deleted()); self.deleted.extend({ validatable: !self.deleted()}); }; } var viewModel = { names: ko.observableArray([new Person("Ken"), new Person("")]) }; ko.applyBindings(viewModel); 
+8
knockout-validation
source share
1 answer

Update The old answer is not valid for the version of the knockout-Contrib check (this is a branch with active development)

https://github.com/Knockout-Contrib/Knockout-Validation

Use onlyIf parameter like

 this.enable = ko.observable(true); this.required = ko.observable().extend({ required: { onlyIf: this.enable } }); 

Old answer

Try

 this.property.extend({ validatable: false }); // disables all validation for property 

or

 this.property.extend({ required: false }); // disables required validation for property 
+9
source share

All Articles