0

How to display the "Email is required" message if a field has been touched

<div class="form-group">
    <label class="control-label">Email</label>
    <input class="form-control w-100 mt-2" type="text" formControlName="login" required>
    <span class="text-danger" *ngIf="form.controls.login.errors?.required">
        Email is required
    </span>
</div>
user17260293
  • 85
  • 10
  • Really I hate write always the codition, So, some time ago, I made a "component error" in this [SO](https://stackoverflow.com/questions/57741343/angular-forms-how-to-avoid-multiple-ngif-divs-for-validation-error-messages/57744709#57744709), but all the others answer are ok – Eliseo Dec 16 '21 at 22:46

2 Answers2

0

You can use form.controls.login.touched

<div class="form-group">
        <label class="control-label">Email</label>
        <input class="form-control w-100 mt-2" type="text" formControlName="login" required>
        <span class="text-danger" *ngIf="form.controls.login.touched && form.controls.login.errors?.required">
            Email is required
        </span>
    </div>
vaira
  • 2,191
  • 1
  • 10
  • 15
0

With touched.

<span class="text-danger" *ngIf="form.controls.login.touched && form.controls.login.errors?.required">
    Email is required
</span>

Sample Demo on StackBlitz

References

Validating input in template-driven forms

Yong Shun
  • 35,286
  • 4
  • 24
  • 46