我有以下4个复选框,它们是动态生成的。在角度组件中,我想检索复选框的“名称”,“值”和“状态”。
HTML:
<input type="checkbox"
name="automotive"
value="car"
ngModel
(ngModelChange)="filterResults(obj, $event)">
<input type="checkbox"
name="automotive"
value="truck"
ngModel
(ngModelChange)="filterResults(obj, $event)">
<input type="checkbox"
name="apparel"
value="shirts"
ngModel
(ngModelChange)="filterResults(obj, $event)">
<input type="checkbox"
name="apparel"
value="pants"
ngModel
(ngModelChange)="filterResults(obj, $event)">
组件:
filterResults(obj: any, isChecked: boolean){
console.log(obj);
console.log(isChecked); // {}, true || false
}
我可以获取复选框的状态,但不能获取名称和值。打印到控制台后,obj
未定义。我想根据复选框的名称和值将过滤器应用于数据集。
如何获取已选中复选框的名称和值,以便可以做到这一点?
答案 0 :(得分:1)
最好了解您正在使用的版本。 这将是其中一种方法:
<input type="checkbox"
name="automotive"
value="car" (change)="checkValues($event)"
ngModel
(ngModelChange)="filterResults(obj, $event)">
以及相应的.ts文件
checkValues(e: any) { console.log(e) }
您必须在 source 属性中找到所需的所有属性。
答案 1 :(得分:1)
您可以将empty_storing_array
事件替换为ngModelChange
事件,并在其中将click
对象传递为
event
并在component方法中,尝试获取名称,值和检查状态为
(change)="GetStats($event)"
在堆栈https://stackblitz.com/edit/angular-get-dynamic-checkbox-attributes中查看更多内容
答案 2 :(得分:0)
您可以为每个复选框添加一个动态ID:
<input type="checkbox" [attr.id]="uniqueIdHere" ... >
然后按如下方式访问您的复选框属性:
var checkboxValue = (<HTMLInputElement>document.getElementById("uniqueIdHere")).value;
如果您的复选框是通过循环生成的,则可以将索引用作[attr.id]
答案 3 :(得分:0)
我认为您可以做到:
<input type="checkbox"
name="automotive"
value="car"
ngModel
(ngModelChange)="filterResults({name: 'automotive', value: 'car'}, $event)">
<input type="checkbox"
name="automotive"
value="truck"
ngModel
(ngModelChange)="filterResults({name: 'automotive', value: 'truck'}, $event)">
<input type="checkbox"
name="apparel"
value="shirts"
ngModel
(ngModelChange)="filterResults({name: 'apparel', value: 'shirts'}, $event)">
<input type="checkbox"
name="apparel"
value="pants"
ngModel
(ngModelChange)="filterResults({name: 'apparel', value: 'pants'}, $event)">