我正在使用包含一些键和输入字段的下拉菜单。
当前,当我选择下拉列表并按Tab键时,它将转到第二个下拉列表。
我期望的行为是,在选择下拉列表后,我按下了选项卡按钮,它应该在下拉列表中选择下一项。
下面是显示我期望的行为的图像
这是我的代码
<div class="fromTo">
<mat-form-field style="width: 30%;">
<mat-label>From</mat-label>
<mat-select panelClass="fromSelect" style="margin-top:10% ;">
<input matInput [(ngModel)]='searchValue' placeholder="Search" style="height: 35px; background-color: #f3f5f8; width: 98%;"/>
<button mat-icon-button matSuffix (click)="onKeyAgency(searchValue)" class="cursor-pointer" type="button" style="float: right;position: absolute; right: 0;">
<mat-icon class="search_icon">search</mat-icon>
</button>
<button mat-button (click)="showAdd=!showAdd" style="width: 100%;text-align: left;"><mat-icon>add</mat-icon> Add New</button>
<input matInput [ngClass]="{ 'hide': showAdd}" [(ngModel)]='newPlace' placeholder="add" style="height: 35px; background-color: #f3f5f8; width: 98%; position: inherit; "/>
<button mat-icon-button matSuffix (click)="addPlace(newPlace)" [ngClass]="{ 'hide': showAdd }" class="cursor-pointer" type="button" style="float: right; position: absolute; right: 10%;">
<mat-icon class="search_icon">done</mat-icon>
</button>
<button mat-icon-button matSuffix (click)="newPlace=''" [ngClass]="{ 'hide': showAdd }" class="cursor-pointer" type="button" style="float: right; position: absolute; right: 0;">
<mat-icon class="search_icon">close</mat-icon>
</button>
<mat-option>None</mat-option>
<mat-option *ngFor="let places of selectedAgencies" [value]="places">{{places}}</mat-option>
</mat-select>
</mat-form-field>
</div>
答案 0 :(得分:1)
在模板中的以下选项中添加tabindex
-
<div class="fromTo">
<mat-form-field style="width: 30%;">
<input (keydown)="onKeydown($event)" />
<mat-option>None</mat-option>
<!-- Add table index to matOptions-->
<mat-option *ngFor="let places of selectedAgencies;let i = index" [value]="places" tabindex="index">{{places}}</mat-option>
</mat-select>
</mat-form-field>
</div>
然后在您的组件中,将输入字段中的keydown
事件绑定到组件中的回调。这应该避免面板关闭-
onKeydown(event) {
if (event.keyCode === 9) {
event.stopPropagation();
}
}