angular2 validieren Formular auf Knopfdruck

8

Wenn ich ein Formular über button type="submit" absende, erscheinen die Formularüberprüfungsmeldungen und alles ist in Ordnung. Wenn ich jedoch eine Schaltfläche (oder einen Link) mit (click)="myhandler()" habe, werden die Validierungen nicht angezeigt.

Wie kann ich entweder:

  • Markieren Sie das Element so, dass die Ausführung von Validatoren erforderlich ist, oder
  • führt automatisch Validierungsnachrichten aus und zeigt sie an.

Hinweis: Dies sind einfache Validierungen wie für Eingabefelder erforderlich.

Beispielcode:

%Vor%     
gatapia 12.04.2016, 09:57
quelle

7 Antworten

1

Sie sollten die Schaltfläche deaktivieren, bis das Formular gültig ist. Ändern Sie also in Ihrem Fall das Tag zum Öffnen des Formularelements, um eine Variable für das Formular zu erstellen:

%Vor%

und deaktivieren Sie die Schaltfläche, wenn das Formular nicht gültig ist

<button (click)="save()" [disabled]="!myForm.form.valid">Click 2</button>

Lassen Sie mich wissen, ob das funktioniert. Da das Formular selbst in jedem Fall automatisch und konstant überprüft wird, müssen Sie nicht dafür sorgen, dass es erledigt wird.

    
MSwehli 12.04.2016 10:24
quelle
1

setze Bedingungen in die [hidden] -Direktive und ändere die submitted -Eigenschaft beim Senden auf true!

%Vor%     
Mauri Melo 25.07.2016 05:16
quelle
0

Fügen Sie Ihre click2 -Schaltfläche in form tag ein. Es wird anfangen zu arbeiten!

%Vor%     
micronyks 12.04.2016 10:22
quelle
0
  

Programmatisch prüfen und mit Validierung deaktivieren

%Vor%

Arbeitsbeispiel Ссылка

    
Pardeep Jain 12.04.2016 10:25
quelle
0

Button mit dem Typ submit triggers form submit automatisch, ich denke, Sie müssen das Formular submit manuell auslösen:

%Vor%
  

Warum "ngForm"? Die Eigenschaft exportAs einer Anweisung teilt Angular mit, wie eine lokale Variable mit der Anweisung verknüpft werden soll. Wir setzen den Namen auf ngForm, da die exportAs -Eigenschaft der NgControlName-Direktive "ngForm" ist.

Dokumentation

    
kemsky 12.04.2016 10:21
quelle
0

Unter Code wird Ihnen helfen .. Getestet mit Angular 4 Neueste Version 4.2.4

%Vor%

in Ihrer .ts Datei

%Vor%     
KIRANJOSHI 25.07.2017 07:38
quelle
0

Bitte beachten Sie: Dieser Ansatz ist für reaktive Formen.

Ich habe die Eigenschaft markAsTouched() verwendet, um Validierungen bei einem Klick auf die Schaltfläche auszuführen.

Angenommen, die folgende Schaltfläche befindet sich außerhalb des Formulars:

%Vor%

Wenn nun in der Methode validateForm das Formular ungültig ist, können Sie die Eigenschaft markAsTouched() für jedes Formularsteuerelement festlegen, und angular zeigt Validierungsnachrichten an.

%Vor%

vorausgesetzt, Sie haben Validierungsnachrichten in Ihrem HTML wie

eingerichtet %Vor%

und Sie haben die Feldvalidierung in Ihrem Formulargruppen-Builder wie

benötigt %Vor%     
sainture 20.12.2017 22:41
quelle

Tags und Links