To validate reactive form in angular; Simply install import reactive form module in app.ts file and then use it with forms to validate form data in angular applications.
Angular 17 Reactive Form with Validation Example
Steps to create and use reactive Form with validation in the angular 17 apps:
Step 1 – Set up a new Angular project
First of all, open your command prompt or cmd and execute the following command into it to install the angular apps into your system:
ng new my-new-app
Step 2 – Import Reactive Form and other Modules
Navigate to src/app/ directory and open the app.module.ts file, and then import modules like following:
Then import ReactiveFormsModule in this file, as follows:
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, FormsModule, ReactiveFormsModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
Step 3 – Create a Reactive Form
To create reactive form; Simply navigate to src/app directory and open app.component.html file, and then create reactive form like following:
<h1>Angular 17 Reactive Forms Validation Example - Tutsmake.com</h1> <form [formGroup]="form" (ngSubmit)="submit()"> <div class="form-group"> <label for="name">Name</label> <input formControlName="name" id="name" type="text" class="form-control"> <div *ngIf="f['name'].touched && f['name'].invalid" class="alert alert-danger"> <div *ngIf="f['name'].errors && f['name'].errors['required']">Name is required.</div> <div *ngIf="f['name'].errors && f['name'].errors['minlength']">Name should be 3 character.</div> </div> </div> <div class="form-group"> <label for="email">Email</label> <input formControlName="email" id="email" type="text" class="form-control"> <div *ngIf="f['email'].touched && f['email'].invalid" class="alert alert-danger"> <div *ngIf="f['email'].errors && f['email'].errors['required']">Email is required.</div> <div *ngIf="f['email'].errors && f['email'].errors['email']">Please, enter valid email address.</div> </div> </div> <div class="form-group"> <label for="body">Body</label> <textarea formControlName="body" id="body" type="text" class="form-control"> </textarea> <div *ngIf="f['body'].touched && f['body'].invalid" class="alert alert-danger"> <div *ngIf="f['body'].errors && f['body'].errors['required']">Body is required.</div> </div> </div> <button class="btn btn-primary" [disabled]="form.invalid" type="submit">Submit</button> </form>
Step 4 – Import TypeScript
Navigate to src/app directory and open app.component.ts, and import the typescripts like following into it:
import { Component } from '@angular/core'; import { FormGroup, FormControl, Validators} from '@angular/forms'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { form = new FormGroup({ name: new FormControl('', [Validators.required, Validators.minLength(3)]), email: new FormControl('', [Validators.required, Validators.email]), body: new FormControl('', Validators.required) }); get f(){ return this.form.controls; } submit(){ console.log(this.form.value); } }
Step 5 – Start Angular App
Run the following command on the command prompt or cmd to start the angular project:
ng serve
Navigate to http://localhost:4200
in your web browser to see the form with validation in action.
Conclusion
That’s it! You now have a working Angular 17 reactive form with validation. As a user interacts with the form, the validation messages will appear dynamically based on the defined validation rules.