Reegan
Reegan

Reputation: 183

Angular reactive form validation for dynamic field during submit

I am using the reactive form with dynamic field (productname). I can throw validation error if the form is submitted without filling the product name.

But when I clicked the Add button, the error "Enter Product Name" is appearing for every new inputs (formControlName="productname"). Also I given the stackblitz link Please someone provide solution enter image description here https://stackblitz.com/github/reegan2024/mygithubrepo?file=src%2Fapp%2Fapp.component.html

Upvotes: 1

Views: 42

Answers (1)

Naren Murali
Naren Murali

Reputation: 58492

When you submit, to show all the errors, use the method markAllAsTouched.

onSubmit(formvalue: boolean) {
  this.productFormarray.markAllAsTouched();
  if (formvalue == true) {
    this.openDialog();
  }
}

Since you want the error message to show only when the input is touched, you can fine tune the *ngIf to show only when it is touched this get's rid of the complexity of checking form submitted and reduces the amount of HTML code, for more readability.

    <div
      *ngIf="productdetailsarray.at(i).get('productname')?.touched"
      style="font-size: 10pt; margin-top: 2pt; color:red;"
    >
      ...
    </div>

Stackblitz Demo

Upvotes: 1

Related Questions