2017-07-18 82 views
0

我有多个复选框如下如何知道复选框是否被点击或不角2

moduleNameList = ['test1', 'test2', 'test3', 'test4'] 
<li *ngFor="let module of moduleNameList"> 
<input [value]="module" type="checkbox"> {{module}}<br> 
</li> 

用户可以点击任何复选框,最后一次他点击一个按钮,我想知道是什么值用户选中。 任何人都可以帮助我吗?

+0

您可以将[(ngmodel)]和(change)=“changed($ event)”添加到您的输入元素。 – riteshmeher

+0

嘿,它的答案是怎么回事?有帮助还是需要进一步的帮助? :) – Alex

+1

@ AJT_82:谢谢你的回答,它为我工作,但[ngValue]不工作,而不是我使用[价值] –

回答

-2

有很多方法可以做到this.If我们使用常规的jQuery的方法设置你的输入

<input class="foo" [value]="module" type="checkbox"> {{module}}<br> 

那么你可以单击事件做到这一点

<script> 
     $('.foo').click(function(e) 
     { 
      var value = $(this).val(); 
      alert(value); 
     }); 
</script> 

或者,看看这个使用ng-click的Adding parameter to ng-click function inside ng-repeat doesn't seem to work

1

我认为最简单的方法是将项目设置为对象,新属性,例如checked作为ngModel,在检查时切换布尔值true,反之亦然。

moduleNameList=[{name:'test1', checked: false},{name:'test2', checked: false}, 
       {name:'test3',checked:false}] 

模板:

<li *ngFor="let module of moduleNameList"> 
    <input [value]="module" type="checkbox" [(ngModel)]="module.checked"> 
    {{module.name}} 
</li> 

现在你可以重复按钮点击该数组,看看哪些对象有checked财产true

编辑:作为OP注意到我的错误的小改变!我们应该使用[value]而不是[ngValue]

相关问题