【问题标题】:How to add custom input option to select?如何添加自定义输入选项以进行选择?
【发布时间】:2021-11-25 21:18:42
【问题描述】:

我正在使用<mat-select>,我需要选项列表,其中最后一个选项是带有占位符Add your custom option 的文本输入。用户可以选择其中一个选项或单击最后一个选项(即输入)和文本自己的选项,一旦他发短信,他在选择之外单击并设置了用户发短信的值。

问题是当用户添加 push space 以添加空格时,下拉菜单关闭。

<select>
  <option value="option 1"> option 1 </option>
  <option value="option 2"> option 2 </option>
  <option> <input type="text" placeholder="own option" /></option>
</select>

【问题讨论】:

    标签: javascript html angular-material


    【解决方案1】:

    添加$event.stopPropagation 就足够了。在下面的代码块中我使用了两次:

    1. (click)事件上,所以当用户点击文本输入区域时,选择菜单不会关闭
    2. (keydown) 事件上,mat-select 指令监听空格键并在收到时关闭菜单。

    <mat-select>
      <mat-option *ngFor="let food of foods" [value]="food.value">
        {{ food.viewValue }}
      </mat-option>
      <mat-option>
        <input
          type="text"
          placeholder="Add your custom option"
          (click)="$event.stopPropagation()"
          (keydown)="$event.stopPropagation()"
        />
      </mat-option>
    </mat-select>

    【讨论】:

    • 谢谢,它有效。你不知道如何更新选择值吗?当我对输入 this.form.setValue(event.target.value) 进行 keyup 时,选定的值不会改变,但 formControl.value 已经更新
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2021-10-10
    • 1970-01-01
    • 2021-03-27
    • 2015-09-29
    • 2018-02-26
    • 1970-01-01
    相关资源
    最近更新 更多