2017-01-03 11 views
0

私は、選択された各チェックボックスの値を真にしようとしています。チェックボックスを選択するたびに、選択されたすべてのチェックボックスの代わりにそのチェックボックスの値が取得されます。各チェックボックスの値を取得する

パス:talentList.html

<fieldset>   
    <div class="checkbox"> 
    <label> 
     <input name="specialisation" type="checkbox" value="Accounting Firm"> Accounting Firm 
    </label> 
    </div> 

    <div class="checkbox"> 
    <label> 
     <input name="specialisation" type="checkbox" value="Accounting in Industry"> Accounting in Industry 
    </label> 
    </div> 
</fieldset> 

パス:talentList.js

Template.talentList.events({ 
    'change [name="specialisation"]': function (event, template) { 
     let specialisation = event.target.value; 
     template.candidateListFilter.set(specialisation); 
    } 
}); 
+0

あなたの問題が何であるかはわかりません。チェックボックスを選択すると、選択したすべてのチェックボックス値を取得しようとしていますか? – Khang

+0

はいいいえ – bp123

答えて

1

イベントハンドラで唯一ターゲットセットはとてもevent.target.valueがスカラーの代わりに、配列になりますがあります。配列のチェックボックスを反復処理する必要があります。

Template.talentList.events({ 
    'change [name="specialisation"]': function (event, template) { 
    $.each($('[name="specialisation"]'),function(i,cb){ 
     let specialisation = cb.value; 
     template.candidateListFilter.set(specialisation); 
    }); 
    } 
}); 

正直言って、これは奇妙なパターンのようです。チェックボックスをオンまたはオフにしたときに文書を更新する場合は、他のチェックボックスの状態を同時に設定する必要はありません。必要なものだけを突き刺すことができます。

+1

"[name = 'specialization']を追加:チェックして、選択したチェックボックスだけを取得しました。 – bp123

0

これが正しいかどうかわかりません。すべての選択されたオプションのオブジェクトを作成します。

'change [name="specialisation"]': function (event, template) { 

    $(document).ready(function(){ 

     var specialisation = $('input[name="specialisation"]:checked').map(function(){ 

      return $(this).val(); 

     }); 

     var specialisationListArray = specialisation.get(); 
     template.candidateListFilter.set(specialisationListArray); 
    }); 
}, 
+0

メテオでは '$(document).ready()'を使用する必要はありません –

関連する問題