How to Clear mat-datpicker value

To clear the value of a mat-datepicker component in Angular Material, you can use the matDatepickerInput directive and its associated MatDatepickerInput class or FromControl. Here’s how you can clear the selected date:

Solution 1: Using Form Control

<mat-form-field>
    <input matInput [matDatepicker]="picker2" placeholder="Choose a date" [(ngModel)]="mydate">
    <mat-datepicker-toggle matSuffix [for]="picker2"></mat-datepicker-toggle>
    <mat-datepicker #picker2></mat-datepicker>
</mat-form-field>
<button class="btn-primary btn" (click)="reset()">Reset</button>
reset() {
    this.mydate = '';
  }

2. Using template variable of MatInput

<mat-form-field>
    <input #input2 matInput [matDatepicker]="picker2" placeholder="Choose a date" [(ngModel)]="mydate">
    <mat-datepicker-toggle matSuffix [for]="picker2"></mat-datepicker-toggle>
    <mat-datepicker #picker2></mat-datepicker>
</mat-form-field>
<button class="btn-primary btn" (click)="reset()">Reset</button>
@ViewChild('input2')  datepickerInput!: ElementRef;
reset() {
    this.datepickerInput.nativeElement.value = '';
  }

3. Using template variable for matDatePicker

<mat-form-field>
    <input #input2 matInput [matDatepicker]="picker2" placeholder="Choose a date" [(ngModel)]="mydate">
    <mat-datepicker-toggle matSuffix [for]="picker2"></mat-datepicker-toggle>
    <mat-datepicker #picker2></mat-datepicker>
</mat-form-field>
<button class="btn-primary btn" (click)="reset()">Reset</button>
@ViewChild('picker2') datepicker: MatDatepicker<Date | null> | undefined;
if (this.datepicker) {
      this.datepicker.select(null);
    }

Leave a Reply