如何在 Angular 响应式表单中的另一个输入中获取 select 选项文本
How to fetch select option text inside another input in Angular Reactive Forms
我的 Angular 响应式表单中有一个 select 字段,我想提取用户 select 和 <option>
标签内的文本值然后在输入中动态填充它的值(如更改事件)
COMPONENT.HTML
<div class="form-group">
<label>Select Plant</label>
<select class="form-control" formControlName="plantId" name="plantId" id="plantId">
<option [ngValue]="1">ABC</option>
<option [ngValue]="2">XYZ</option>
</select>
<app-control-messages [control]="storlocForm.get('plantId')"></app-control-messages>
</div>
<div class="form-group">
<label>Plant Name *</label>
<input id="plantName" class="form-control" type="text" formControlName="plantName" name="plantName" value="" />
</div>
假设如果用户 selects XYZ 来自下拉列表,我希望在以下输入 (plantName) 中填写值 "XYZ" 而不是值“2”。
COMPONENT.TS
this.storlocForm = this.formBuilder.group({
plantId: ['', Validators.required],
plantName: ['']
});
}
您必须为数组使用键值对,因此用户 {key : "XYZ", value: "XYZ"},{key:"ABC", value: "ABC"}
只需将更改事件添加到 select 元素并更新表单控件,如下所示。
<select class="form-control" formControlName="plantId" name="plantId" id="plantId" (change)="update($event)">
<option [ngValue]="1">ABC</option>
<option [ngValue]="2">XYZ</option>
</select>
update(event): void {
let plantName = event.target.options[event.target.options.selectedIndex].text;
this.form.controls.plantName.setValue(plantName);
}
我的 Angular 响应式表单中有一个 select 字段,我想提取用户 select 和 <option>
标签内的文本值然后在输入中动态填充它的值(如更改事件)
COMPONENT.HTML
<div class="form-group">
<label>Select Plant</label>
<select class="form-control" formControlName="plantId" name="plantId" id="plantId">
<option [ngValue]="1">ABC</option>
<option [ngValue]="2">XYZ</option>
</select>
<app-control-messages [control]="storlocForm.get('plantId')"></app-control-messages>
</div>
<div class="form-group">
<label>Plant Name *</label>
<input id="plantName" class="form-control" type="text" formControlName="plantName" name="plantName" value="" />
</div>
假设如果用户 selects XYZ 来自下拉列表,我希望在以下输入 (plantName) 中填写值 "XYZ" 而不是值“2”。
COMPONENT.TS
this.storlocForm = this.formBuilder.group({
plantId: ['', Validators.required],
plantName: ['']
});
}
您必须为数组使用键值对,因此用户 {key : "XYZ", value: "XYZ"},{key:"ABC", value: "ABC"}
只需将更改事件添加到 select 元素并更新表单控件,如下所示。
<select class="form-control" formControlName="plantId" name="plantId" id="plantId" (change)="update($event)">
<option [ngValue]="1">ABC</option>
<option [ngValue]="2">XYZ</option>
</select>
update(event): void {
let plantName = event.target.options[event.target.options.selectedIndex].text;
this.form.controls.plantName.setValue(plantName);
}