angular2 Formular überprüfen auf die Schaltfläche klicken
Wenn ich ein Formular Absenden mit button type="submit"
form Prüfmeldungen angezeigt und alles ist in Ordnung. Aber wenn ich eine Schaltfläche (oder link) mit (click)="myhandler()"
dann die Validierungen nicht angezeigt.
Wie kann ich entweder:
- - tag des Elements, in denen Prüfungen zu laufen, oder
- programmgesteuert ausgeführt, und die Validierung von Nachrichten.
Hinweis: Dies sind einfache Validierungen wie erforderlich auf input-Felder.
Beispielcode:
<form (ngSubmit)="save()">
<input required type='text' [(ngModel)]="name">
<!-- Shows validation messages but still calls save() -->
<button (click)="save()">Click</button>
<!-- Only submits if valid and shows messages -->
<button type="submit">Submit</button>
</form>
<!-- does not even show validation messages, just calls save -->
<button (click)="save()">Click 2</button>
- bitte geben Sie code. Ich denke, dass problem ist mit deinem code.
- seine Typ Schaltfläche 'senden' oder eine einfache Taste, ist im Zusammenhang mit der Validierung, geben Sie Ihren code arbeiten, wir helfen Ihnen
- ans ist kurz hoffe hilft, fügen Sie ein hidden-div basiert auf der form.überprüfen ich.e
<div [hidden]="!form.validate">{{warningMessage}}</div>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte beachten Sie: dieser Ansatz ist für reaktive Formen.
Ich verwendet
markAsTouched()
Eigenschaft zum ausführen von überprüfungen auf eine Schaltfläche klicken.Angenommen, die folgende Taste ist außerhalb des Formulars:
Nun, in der
validateForm
Methode, wenn das Formular ungültig ist, können SiemarkAsTouched()
- Eigenschaft für jedes Formular-Steuerelemente und-Winkel zeigen, die Validierung von Nachrichten.vorausgesetzt, Sie haben die Validierung von Nachrichten setup im html-wie
und Sie haben die Pflichtfeld-Validierung setup in der form Gruppe builder wie
Code unten Wird Ihnen Helfen .. Getestet mit Winkel-4 Neueste version 4.2.4
in Ihr .ts-Datei
Sollten Sie halten Sie die Schaltfläche solange deaktiviert, bis Sie das Formular gültig ist. Also in deinem Fall ändern Sie Ihre form-element Start-tag zu erstellen Sie eine variable für das Formular:
und deaktivieren Sie die Taste Los, wenn die form ist nicht gültig
<button (click)="save()" [disabled]="!myForm.form.valid">Click 2</button>
Lassen Sie mich wissen, ob das funktioniert. Wie das Formular selbst, prüft automatisch und ständig in anycase, brauchen Sie nicht zu rufen, es zu tun.
<button (click)="myForm.runValidatorsAndSubmit()"
wenn seine zur Verfügung. Ich warf die ngForm auf die Konsole, fand aber nichts dergleichen.Button mit type submit auslöst form submit automatisch, ich denke, Sie haben, um die trigger-form, manuell Einreichen:
Dokumentation
<form... #myform>
und auf den button<button (click)="myform.submit()"
und diese nicht laufen die Prüfungen.#form="ngForm"
.Bedingungen im [versteckt] - Richtlinie und der änderung eingereicht-Eigenschaft auf true Einreichen!
onSubmit()
wird nicht aufgerufen, wenn das Formular ungültig ist.Setzen Sie Ihre
click2
- Taste innerhalbform
tag. Es wird anfangen zu arbeiten !ngFormModel,formBuilder,ngControl
Richtlinien. dies könnte helfen, Sie - plnkr.co/Bearbeiten/oP0A8vWFHsZ4y5A7uUQP?p=Album Vorhören.Beispiel arbeiten http://plnkr.co/edit/aoHHw709VeMlP8Qfgnp6?p=preview