在Angular 8中获取选中的每个复选框的下拉列表的值,可以通过以下步骤实现:
<form [formGroup]="myForm">
<div *ngFor="let option of options">
<input type="checkbox" [value]="option" formControlName="checkboxes">
<select *ngIf="myForm.controls.checkboxes.value.includes(option)" formControlName="dropdowns">
<option *ngFor="let item of dropdownOptions" [value]="item">{{ item }}</option>
</select>
</div>
</form>
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, FormArray } from '@angular/forms';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponentComponent implements OnInit {
myForm: FormGroup;
options: string[] = ['Option 1', 'Option 2', 'Option 3'];
dropdownOptions: string[] = ['Value 1', 'Value 2', 'Value 3'];
constructor(private formBuilder: FormBuilder) { }
ngOnInit() {
this.myForm = this.formBuilder.group({
checkboxes: this.formBuilder.array([]),
dropdowns: this.formBuilder.array([])
});
}
}
valueChanges
方法来监听表单控件值的变化,并更新相应的下拉列表。示例代码如下:ngOnInit() {
this.myForm = this.formBuilder.group({
checkboxes: this.formBuilder.array([]),
dropdowns: this.formBuilder.array([])
});
this.myForm.controls.checkboxes.valueChanges.subscribe((values: string[]) => {
const dropdownsArray = this.myForm.controls.dropdowns as FormArray;
dropdownsArray.clear();
values.forEach((value: string) => {
dropdownsArray.push(this.formBuilder.control(''));
});
});
}
getSelectedValues() {
const checkboxesArray = this.myForm.controls.checkboxes as FormArray;
const dropdownsArray = this.myForm.controls.dropdowns as FormArray;
const selectedValues = checkboxesArray.controls
.map((control, index) => control.value ? dropdownsArray.controls[index].value : null)
.filter(value => value !== null);
console.log(selectedValues);
}
通过调用getSelectedValues
方法,即可获取选中的每个复选框的下拉列表的值。
这是一个基本的示例,你可以根据实际需求进行修改和扩展。同时,腾讯云也提供了一系列与Angular相关的产品和服务,例如云服务器、云数据库、云存储等,你可以根据具体需求选择相应的产品。更多关于腾讯云产品的信息,请参考腾讯云官方文档:腾讯云产品与服务。
领取专属 10元无门槛券
手把手带您无忧上云