Reputation: 2945
I have 2 separate forms in my Angular 6 component:
The first one:
<form name="form" (ngSubmit)="rules.form.valid && saveRules(rules)" #rules="ngForm" novalidate>
<input id="distance" type="number" required name="distance" [(ngModel)]="model.distance" #distance="ngModel" [ngClass]="{ 'is-invalid': rules.submitted && !distance.valid }">
<div *ngIf="rules.submitted && !distance.valid" class="invalid-feedback">
Minimum Distance is required.
</div>
<button *ngIf="!isRequesting" type="submit">Save</button>
</form>
And the second one:
<form name="form" (ngSubmit)="location.form.valid && saveLocations(locations)" #locations="ngForm" novalidate>
<input id="location" type="text" required name="location" [(ngModel)]="model.location" #location="ngModel" [ngClass]="{ 'is-invalid': locations.submitted && !location.valid }">
<div *ngIf="locations.submitted && !location.valid" class="invalid-feedback">
Location is required.
</div>
<button type="submit">Save</button>
</form>
My problem is that pressing save on the first form triggers the validation for the second one - how can I keep the forms separate?
Upvotes: 0
Views: 31
Reputation: 568
You have a spelling problem in you location form, change:
(ngSubmit)="location.form.valid && saveLocations(locations)"
to
(ngSubmit)="locations.form.valid && saveLocations(locations)"
See here your example working the way you want:
https://stackblitz.com/edit/angular-8sc4cr
Upvotes: 1