Nur wenn Sie die sofortige Validierung verwenden, z. B. beim Tippen. Tun Sie dies nicht .. nur mit guten Gedanken oder mit asynchroner Validierung, die zum Beispiel auf einem Backend beruht.
Sam Vloeberghs
Antworten:
243
Wie in diesem Angular- Beispiel zu sehen ist , gibt es eine Möglichkeit, eine Schaltfläche zu deaktivieren, bis das gesamte Formular gültig ist:
Wie erhalte ich mit formBuilder den Wert von Radio und Kontrollkästchen?
Pardeep Jain
Der referenzierte Link hat zum Beispiel alte Syntax für angle2 ng-form-modal. Bitten Sie ihn, Danke zu aktualisieren.
Pardeep Jain
Überprüfen Sie dieses Beispiel, die Syntax ist aktuell -> blog.jhades.org/…
Angular University
1
Wie können Sie ein Formular validieren, wenn Sie die Schaltfläche "Senden" deaktivieren (es sei denn, Sie tun dies im Flow, aber das gefällt mir nicht immer)? Bitte beachten Sie UX Bedenken hier ..
Sam Vloeberghs
6
[disabled] = "ngForm.invalid" können Sie auch überprüfen
Während dieser Code die Frage möglicherweise beantwortet, würde die Bereitstellung eines zusätzlichen Kontexts darüber, wie und / oder warum das Problem gelöst wird, den langfristigen Wert der Antwort verbessern.
Nic3500
5
Hier ist ein funktionierendes Beispiel (Sie müssen mir vertrauen, dass es auf dem Controller eine submit () -Methode gibt - sie druckt ein Objekt wie {user: 'abc'}, wenn 'abc' in das Eingabefeld eingegeben wird):
Verwenden Sie nicht loginForm.form, sondern nur loginForm
loginForm.invalid funktioniert genauso gut wie! loginForm.valid
Wenn an submit () die richtigen Werte übergeben werden sollen, sollte das Eingabeelement die Attribute name und ngModel haben
Dies ist auch dann der Fall, wenn Sie NICHT den neuen FormBuilder verwenden, den ich empfehle. Bei der Verwendung von FormBuilder sieht das ganz anders aus.
Antworten:
Wie in diesem Angular- Beispiel zu sehen ist , gibt es eine Möglichkeit, eine Schaltfläche zu deaktivieren, bis das gesamte Formular gültig ist:
quelle
ng-form-modal
. Bitten Sie ihn, Danke zu aktualisieren.in Angular 2.xx , 4 , 5 ...
quelle
.html
.ts
quelle
Hier ist ein funktionierendes Beispiel (Sie müssen mir vertrauen, dass es auf dem Controller eine submit () -Methode gibt - sie druckt ein Objekt wie {user: 'abc'}, wenn 'abc' in das Eingabefeld eingegeben wird):
Wie du siehst:
Dies ist auch dann der Fall, wenn Sie NICHT den neuen FormBuilder verwenden, den ich empfehle. Bei der Verwendung von FormBuilder sieht das ganz anders aus.
quelle
Die Formularvalidierung ist in Angular 2 sehr einfach
Hier ist ein Beispiel,
Überprüfen Sie diesen Plunker auf Demo
Mehr Info
quelle
Es ist wichtig, dass Sie das Schlüsselwort " erforderlich " in jedes Ihrer obligatorischen Eingabe-Tags einfügen, damit es funktioniert.
quelle
Möglicherweise kann der folgende Code helfen:
quelle
Das hat bei mir funktioniert.
.ts
.html
quelle