我正在尝试获取已选中为true的每个复选框的值。每次我选中一个复选框时,它都会获取该复选框的值而不是所有选中的复选框。
路径: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 :(得分: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 :(得分: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 );
});
},