2012-12-05 10 views
13

Ho una configurazione di pagina con Knockout.js e utilizzo di Knockout-Validation.Clear error on Knockout-Validation

Durante il caricamento della pagina, inserisco un altro plug-in in una casella di selezione che attiva una modifica, che attiva la convalida. Devo essere in grado di cancellare quell'errore usando JS in modo da poter iniziare con un'interfaccia utente dall'aspetto nuovo e dare un feedback sul post del modulo o selezionare il cambio di casella.

Non riesco a trovare nulla che mi permetta di cancellare un errore in Knockout-Validation.

risposta

4

Trovato la risposta implementando questa richiesta di pull.

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

mi dà la funzionalità di cui ho bisogno.

+0

Non offendere ma ho la sensazione che questa risposta non è quella che le persone dovrebbero prendere come azione quando vogliono questa funzionalità. da dove il mio downvote. Ho upvoted la tua domanda però, è una buona scelta! :) –

25

Probabilmente un modo migliore che segue quello che è già implementato in validazione eliminazione diretta è dire property.isModified(false);

se si dispone di una vista del modello intero per ripristinare semplicemente scorrere tutte le proprietà validati e chiamare che isModified(false)

See il comment from Eric Barnard here

Speranza che aiuta

+0

Grazie. Inoltre, questo può essere ovvio per gli altri, ma devi farlo dopo aver ripulito il campo. Esempio: _thisComment (''); _this.Comment.isModified (false). Reset di validazione semplice. –

+1

questo è esattamente ciò che 'showAllMessages (false)' fa internamente, come risposto da @yoann –

24

risposta tardi, ma se qualcuno ha bisogno:

// assuming the ko.observable on the checkbox is called propBoolean 
var propBooleanlValid = ko.validation.group(self.propBoolean, { deep: false }); 
propBooleanlValid .showAllMessages(false); 

Nasconde il messaggio fino alla successiva convalida.

+2

Funziona alla grande, grazie! Questo dovrebbe essere nei documenti di convalida del ko. – Ross

+2

nota: assicurati di avere 'messagesOnModified: true' nella tua configurazione. se è falso allora il messaggio mostrerà sempre –

+0

sento che questo è il migliore dei tre –