目标:当用户从 ngbDatePicker 日历中选择(任何)日期时,我想将 matinput 中的文本颜色重置为黑色。如果他们输入未来的日期,我将其设置为使文本变为红色。如果他们从日历 UI 中选择日期,我希望它变回黑色
问题:我似乎无法检测到用户何时从日历中选择了日期。我不需要知道他们选择的日期,只知道他们选择了一些东西。
我试过的:html中的以下内容
(变化)=
- 什么都不做
(选择)=
- 似乎什么也没做
(点击)=
- 这仅在我单击 matinput 文本框时注册,而不是在我单击日历时注册
根据 SO 文章:How to detect date selection in ng-bootstrap Datepicker on input field?,如何检测 angular2 中的引导 datetimepicker 更改事件, https://ng-bootstrap.github.io/#/components/datepicker/examples
打字稿:
onDateSelected() {
this.dateRed = false;
console.log("dateRed value: " + this.dateRed);
}
HTML:
<div class="input-group date-field-90">
<input matInput formControlName="dateOfBirth" class="form-control" (keypress)="dateEnter($event)"
[placeholder]="dateplaceholder" [ngClass]="{'dateRed' : dateRed}" ngbDatepicker #d="ngbDatepicker" [maxDate]="currentDate" (change)="onDateSelected()" [(ngModel)]="dob1"
#dobDate required>
<mat-icon (click)="d.toggle()">event</mat-icon>
</div>
CSS:
.dateRed{
color: red;
}