Stackblitz示例
大家好,我创建了一个自定义日期选择器组件,它基于角度材质日期选择器。它具有以下附加功能:
单击输入字段(背景色:棕色)时,日历将打开,输入字段将聚焦。因此,用户可以从日历中选择日期,也可以在输入字段中手动键入日期。
当单击mat-form-field(背景颜色:白色)时,输入字段默认会聚焦。我抓取单击事件以另外打开日期选择器:
<mat-form-field (click)="datePicker.open();">
日历打开,但输入字段不聚焦。即使当我将焦点方法添加到click-eventhandler中时,输入字段也不会得到焦点:
<mat-form-field (click)="datePicker.open(); input.focus()">
似乎在单击mat表单字段时,我必须选择是打开日历还是聚焦输入字段,但我想要两者:-)
另一个不成功的方法是绘制mat form字段的onContainerClick事件。
我还试图调用input.click()
方法中的mat-form-field.click()
方法,但也没有成功。
有什么想法可以让我在单击mat form字段时实现与单击输入字段时相同的行为吗?
非常感谢你。
我成功地把this.datenput.nativeElement.focus()
方法调用到setTimeout函数中:
模板:
<mat-form-field (click)="datePicker.open(); focusInputField();">
后面的代码:
focusInputField() {
setTimeout(() => this.dateInput.nativeElement.focus());
}
我更新了stackblitz示例。