You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据特定mat-option的选中状态启用/禁用输入字段?

解决方案

核心逻辑是只判断「Mushroom」是否在已选中的选项列表里,而非监听所有选项的变化来切换输入框状态,具体修改如下:

模板文件修改

找到输入框的代码,把原来的[disabled]绑定逻辑替换成直接检查选中数组是否包含「Mushroom」:

<input type="text" [disabled]="!selectedOptions.includes('Mushroom')">

TS文件修改

删掉原来用来控制状态的isDisabled变量以及对应的切换逻辑,只保留选中选项的数组即可,示例代码:

export class SelectMultipleExample {
  toppings = new FormControl('');
  toppingList: string[] = ['Extra cheese', 'Mushroom', 'Onion', 'Pepperoni', 'Sausage', 'Tomato'];
  selectedOptions: string[] = [];

  onSelectionChange(event: MatSelectChange) {
    this.selectedOptions = event.value;
  }
}

逻辑说明

修改后,输入框的启用/禁用状态仅由「Mushroom」的选中状态决定:

  • 当「Mushroom」被选中时,selectedOptions.includes('Mushroom')返回true,!true为false,输入框解除禁用
  • 当「Mushroom」未被选中时,selectedOptions.includes('Mushroom')返回false,!false为true,输入框保持禁用
    其他选项的选中或取消操作不会影响输入框的状态

内容的提问来源于stack exchange,提问作者Ionut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 10:12:04