2017-07-18 84 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]

相關問題