2012-12-05 10 views
13

Ich habe eine Seite eingerichtet mit Knockout.js und Knockout-Validierung verwendet.Fehler löschen bei Knockout-Validierung

Während des Ladens der Seite legte ich ein anderes Plugin auf ein Auswahlfeld, das eine Änderung auslöst, die die Validierung auslöst. Ich muss in der Lage sein, diesen Fehler mit JS zu beheben, damit ich mit einer frisch aussehenden Benutzeroberfläche beginnen und Feedback auf dem Formularpost geben oder Boxänderung auswählen kann.

Ich kann nichts finden, was mir erlaubt, einen Fehler in der Knockout-Validierung zu löschen.

Antwort

4

Die Antwort gefunden, indem diese Pull-Anforderung implementiert wurde.

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

gibt mir die Funktion, die ich brauche.

+0

Nicht zu beleidigen, aber ich fühle mich wie diese Antwort ist nicht die, die Leute sollten als Aktion, wenn sie diese Funktionalität wollen. woher mein Downvote. Ich habe deine Frage jedoch aufgefrischt, es ist eine gute! :) –

25

Eine bessere Methode, die folgt, was bereits in Knockout-Validierung durchgeführt wird, ist property.isModified(false);

zu sagen, wenn Sie eine ganze Sicht Modell haben einfach eine Schleife durch alle validierten Eigenschaften zurückgesetzt und rufen, dass isModified(false)

See die comment from Eric Barnard here

Hoffnung, die

+0

Danke. Auch das kann für andere offensichtlich sein, aber Sie müssen es tun, nachdem Sie das Feld löschen. Beispiel: _thisComment (''); _this.Comment.isModified (false). Einfache Validierung zurückgesetzt. –

+1

das ist genau das, was 'showAllMessages (false)' intern tut, wie von @yoann beantwortet –

24

Späte Antwort hilft aber, wenn jemand braucht es:

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

Es wird die Nachricht bis zur nächsten Validierung ausblenden.

+2

Das funktioniert super, danke! Dies sollte in den Ko-Validierungsdokumenten sein. – Ross

+2

Hinweis: Stellen Sie sicher, dass Sie in Ihrer Konfiguration "messagesOnModified: true" haben. Wenn es falsch ist, wird die Nachricht immer –

+0

anzeigen Ich fühle, dass dies das Beste von drei ist –