Basically, Angular has 4 types of validation, if you need any other validation then you can create custom validation.
1) Validators.required:- this validation is used to required for field value.
2) Validators.minLength(lengthNumber):- this validation is used to define the minimum length of the field value.
3) Validators.maxLength(lengthNumber):- this validation is used to define the maximum length of the field value.
4) Validators.pattern(pattern):- this validation is used to define the pattern of the field value like define email validation etc.
Now, start to implement the validation in the form.
Step1:- firstly open the add-employee.component.ts file and import Validators in the @angular/forms.
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
Now, add the validation in the form field.
ngOnInit(): void { this.addEmpForm = this.fb.group({ empFirstName: ['',[Validators.required]], empLastName: ['',[Validators.required]], empDepart: ['',[Validators.required]] }); }
Now complete business logic in the file.
import { Component, OnInit } from '@angular/core'; import { FormGroup, FormBuilder,Validators } from '@angular/forms'; @Component({ selector: 'app-add-employee', templateUrl: './add-employee.component.html', styleUrls: ['./add-employee.component.scss'] }) export class AddEmployeeComponent implements OnInit { addEmpForm: FormGroup; submitted:boolean=false; constructor(private fb: FormBuilder){} ngOnInit(): void { this.addEmpForm = this.fb.group({ empFirstName: ['',[Validators.required]], empLastName: ['',[Validators.required]], empDepart: ['',[Validators.required]] }); } // convenience getter for easy access to form fields get edata() { return this.addEmpForm.controls; } onEmpSubmit(){ this.submitted=true; if (this.addEmpForm.invalid) { return; } console.log(this.addEmpForm.value); } }
Step2:- Now, add the validation text in the add-employee.component.html
<div align="center" style="width:50%"> <h4>Create Employee</h4> <form [formGroup]="addEmpForm" (ngSubmit)="onEmpSubmit()" novalidate autocomplete="off"> <div class="input-item"> <input type="text" formControlName="empFirstName" placeholder="Employee First Name" class="input-bordered form-control" [ngClass]="{ 'is-invalid': submitted && edata.empFirstName.errors }"> <div *ngIf="submitted && edata.empFirstName.errors" class="invalid-feedback"> <div *ngIf="edata.empFirstName.errors.required">First Name is required</div> </div> </div> <div class="div-gap"></div> <div class="input-item"> <input type="text" formControlName="empLastName" placeholder="Employee Last Name" class="input-bordered form-control" [ngClass]="{ 'is-invalid': submitted && edata.empLastName.errors }"> <div *ngIf="submitted && edata.empLastName.errors" class="invalid-feedback"> <div *ngIf="edata.empLastName.errors.required">Last Name is required</div> </div> </div> <div class="div-gap"></div> <div class="input-item"> <input type="text" formControlName="empDepart" placeholder="Employee Department" class="input-bordered form-control" [ngClass]="{ 'is-invalid': submitted && edata.empDepart.errors }"> <div *ngIf="submitted && edata.empDepart.errors" class="invalid-feedback"> <div *ngIf="edata.empDepart.errors.required">Department is required</div> </div> </div> <div class="div-gap"></div> <div class="gaps"></div> <div class="d-flex justify-content-between align-items-center"> <button type="submit" name="emp_sub" class="sub-button">Create</button> </div> </form> </div>
Step 3:- When you click on the submit button without filling the value then show the validation message.