È possibile rimuovere tutta la convalida si riferisce proprietà formano un osservabile che sono stati aggiunti dalla convalida ko con chiamando:
myObservable.extend({validatable: false});
Oppure, se si desidera rimuovere solo la convalida richiesta è possibile rimuoverlo dalla collezione rules
:
myObservable.rules.remove(function (item) {
return item.rule == "required";
});
}
Demo JSFiddle.
Ma la convalida ko ha il supporto per conditional validation, in modo da poter specificare alcune condizioni, quando la convalida dovrebbe funzionare così forse questo è quello che vi serve:
myObservable.extend({
required: {
message: "Some message",
onlyIf: function() { return //some condition; }
}
});
l'unico problema era esattamente quello di cui avevo bisogno, ma per quanto riguarda ciò che ho chiesto sulla rimozione dell'extender? È supportato da knockout? –
No, non è possibile rimuovere un extender a meno che l'extender stesso non fornisca un modo per "annullare" le proprie modifiche. Nel caso della convalida ko la chiamata 'myObservable.extend ({validatable: false});' effettua esattamente questa operazione rimuove tutte le informazioni relative alla validazione che sono state aggiunte da '.extend ({required: true});' oppure una qualsiasi delle altre regole. – nemesv
myObservable.rules.remove .. buono! – JMGH