Skip to content

Field State (touched, dirty, pristine, valid)

Angular tracks the state of form fields.

Common field states:

  • touched – field has been visited
  • dirty – value has changed
  • pristine – value has not changed
  • valid – field passes validation
  • invalid – field fails validation
<input name="username" ngModel #username="ngModel">
<div *ngIf="username.touched && username.invalid">
Invalid username
</div>