How to add a clear button in mat-datepicker. Exactly in the open calendar how to add a date cleaning button.
<input matInput [(ngModel)]="data1" [matDatepicker]="data1" [value]="" formControlName="data1" id="data1" name="data1">
<mat-datepicker-toggle matSuffix [for]="data1"></mat-datepicker-toggle>
<mat-datepicker #data1></mat-datepicker>
I put inside the attribute:
<input matInput [(ngModel)]="data1" [matDatepicker]="data1" [value]="" formControlName="data1" id="data1" name="data1">
<mat-datepicker-toggle matSuffix [for]="data1"></mat-datepicker-toggle>
<mat-datepicker #data1>
<button (click)="onClickMe()">
<mat-icon matDatepickerToggleIcon>clear</mat-icon>
</button>
</mat-datepicker>
but it doesn't work.
I would ask for help. Thank you.
This solution uses the existing functionality of mat-datepicker-toggle without tying it to the datePicker using the for binding, which makes it do nothing instead of toggling the visibility of the calendar.
Adding a click binding allows arbitrary code to execute, in this case, calling the clear function in the component's JS/TS.
The icon on mat-datepicker-toggle can be customized by adding a child mat-icon component with a matDatepickerToggleIcon directive. This replaces the calendar icon with an arbitrary icon, in this case, the clear icon. source
By default, the icons are stacked vertically. This is fixed by making mat-datepicker-toggle display as inline-block with CSS.
Screenshot of the control
HTML
<mat-form-field appearance="fill">
<mat-label>Start date</mat-label>
<input matInput [matDatepicker]="startDatePicker" [(ngModel)]="startDate">
<mat-datepicker-toggle matSuffix [for]="startDatePicker"></mat-datepicker-toggle>
<mat-datepicker-toggle matSuffix (click)="clearStartDate()">
<mat-icon matDatepickerToggleIcon>clear</mat-icon>
</mat-datepicker-toggle>
<mat-datepicker #startDatePicker></mat-datepicker>
</mat-form-field>
Component.ts
startDate: Date;
clearStartDate() {
this.startDate = null;
}
CSS
mat-datepicker-toggle {
display: inline-block;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With