Ich erstelle eine Anweisung, um ein verstecktes Eingabeelement von der Validierung auszuschließen: Ссылка
%Vor% Die Idee hier ist, wenn das Element ausgeblendet ist, entferne ich das Steuerelement aus dem Formular, so dass es die andere Eingabegültigkeit nicht beeinflusst. Es funktioniert gut, wenn ich form.$removeControl(control);
aufrufen, können Sie das in der Demo testen, indem Sie den Vornamen entfernen und auf die Schaltfläche klicken, um das Feld auszublenden.
Aber wenn ich erneut auf den Button klicke, ist die Gültigkeit des Formulars immer noch gültig, obwohl der Vorname ungültig (leer) ist
Ich habe auch versucht, form.$setValidity(form.$valid && control.$valid)
= & gt; Der Gültigkeitszustand wird wie erwartet aktualisiert, aber wenn ich in den Vornamen eintippe, ist die Gültigkeit immer noch falsch.
Meine Frage ist, wie man dieses Problem löst? Danke für etwaige Antworten.
Aktualisieren :
Danke @ Michaels Antwort. Hier ist die Arbeitslösung:
%Vor% Offenbar verstecken Sie das Element mit ng-show
und senden die Eingabe daher nicht zusammen mit dem Formular.
In diesem Fall können wir die Anweisung ng-if
in der Ansicht verwenden, um das Element im laufenden Betrieb zu entfernen.
Dies würde das Element und seine Gültigkeit auch entfernen.
Tags und Links angularjs forms validation