Angular Validation Password and Confirm Password

By Hardik Savani March 18, 2020 Category : Angular

I am going to show you example of password and confirm password validation in angular reactive form. this example will help you angular password match validation. you can see password and confirm password validation in angular reactive form. it's simple example of password and confirm password validation in angular 8.

You can use password and confirm password validation in angular 6, angular 7, angular 8, angular 9, angular 10, angular 11 and angular 12 application.

I will give you full example of how to add match password validation in angular application. we will add two textbox with password and confirm password in angular using reactive form. we will create our custom ConfirmedValidator class for checking match validation. you can also see bellow preview for validation.

Example:

src/app/app.component.html

<div class="container">

<h1>Angular Validation Password and Confirm Password - ItSolutionStuff.com</h1>

<form [formGroup]="form" (ngSubmit)="submit()">

<div class="form-group">

<label for="password">Password</label>

<input

formControlName="password"

id="password"

type="password"

class="form-control">

<div *ngIf="f.password.touched && f.password.invalid" class="alert alert-danger">

<div *ngIf="f.password.errors.required">Password is required.</div>

</div>

</div>

<div class="form-group">

<label for="confirm_password">Confirm Password</label>

<input

formControlName="confirm_password"

id="confirm_password"

type="password"

class="form-control">

<div *ngIf="f.confirm_password.touched && f.confirm_password.invalid" class="alert alert-danger">

<div *ngIf="f.confirm_password.errors.required">Password is required.</div>

<div *ngIf="f.confirm_password.errors.confirmedValidator">Password and Confirm Password must be match.</div>

</div>

</div>

<button class="btn btn-primary" type="submit" [disabled]="!form.valid">Submit</button>

</form>

</div>

src/app/app.component.ts

import { Component } from '@angular/core';

import { FormBuilder, FormGroup, FormControl, Validators} from '@angular/forms';

import { ConfirmedValidator } from './confirmed.validator';

@Component({

selector: 'app-root',

templateUrl: './app.component.html',

styleUrls: ['./app.component.css']

})

export class AppComponent {

form: FormGroup = new FormGroup({});

constructor(private fb: FormBuilder) {

this.form = fb.group({

password: ['', [Validators.required]],

confirm_password: ['', [Validators.required]]

}, {

validator: ConfirmedValidator('password', 'confirm_password')

})

}

get f(){

return this.form.controls;

}

submit(){

console.log(this.form.value);

}

}

src/app/confirmed.validator.ts

import { FormGroup } from '@angular/forms';

export function ConfirmedValidator(controlName: string, matchingControlName: string){

return (formGroup: FormGroup) => {

const control = formGroup.controls[controlName];

const matchingControl = formGroup.controls[matchingControlName];

if (matchingControl.errors && !matchingControl.errors.confirmedValidator) {

return;

}

if (control.value !== matchingControl.value) {

matchingControl.setErrors({ confirmedValidator: true });

} else {

matchingControl.setErrors(null);

}

}

}

I hope it can help you...