我试图在单击自定义单选按钮时将焦点(光标闪烁)设置在输入框上。但这没有发生。我有stackblitz演示here。
到目前为止,我已经尝试过了。
<mat-radio-group [(ngModel)]="selection" #radioGroup="matRadioGroup">
<mat-radio-button value="option 1">option 1</mat-radio-button>
<mat-radio-button value="option 2">option 2</mat-radio-button>
<mat-radio-button value="option 3">option 3</mat-radio-button>
<mat-radio-button value="option 4">option 4</mat-radio-button>
<mat-radio-button [value]="customOption" (click)="onBlur()">
<mat-form-field>
<input matInput id="input" [(ngModel)]="customOption" />
</mat-form-field>
</mat-radio-button>
</mat-radio-group>
在组件中
onBlur() {
document.getElementById('input').focus();
}
答案 0 :(得分:1)
问题在于,它会在选择单选按钮的操作完成之前将焦点设置到输入元素,因此一旦完成,它将立即将焦点切换到单选按钮。
一种解决方案是改变
document.getElementById('input').focus();
到
setTimeout(() => document.getElementById('input').focus());
,以便在将焦点设置到输入元素之前需要等待片刻。