2015-09-27 57 views
1

我有这样的HTML/Spacebars在流星模板:如何循环遍历jQuery中的所有复选框,在每个循环中获取它们的值?

<label for="seljoblocs">Select the Jobs/Locations for the selected Worker</label> 
<div id="seljoblocs" name="seljoblocs"> 
    {{#each jobLocs}} 
    <input type="checkbox" value={{jl_jobloc}}><label>{{jl_jobloc}}</label> 
    {{/each}} 
</div> 

这通过助手功能,为每个“jobloc”复选框:

jobLocs: function() { 
    return JobLocations.find({}, { 
    sort: { 
     jl_jobloc: 1 
    }, 
    fields: { 
     jl_jobloc: 1 
    } 
    }); 
} 

我有这样的jQuery为模板的形式提交事件:

'submit form': function(event, template) { 
    event.preventDefault(); 
    var workerid = template.find('#selworker').value; 

    Meteor.call('insertWorkerJobLocLookup', workerid, jobloc, function(err)   
    { 
     if (err) { 
     Session.set("lastErrMsg", err.message); 
     } else { 
     console.log(workerid + ' for ' + jobloc + ' inserted'); 
     } // else 
    }); // Meteor call 

    $('#selworker').val(""); 
    // TODO: Uncheck all the checkboxes 
} 

我需要通过所有选中的复选框循环,调用“insertWorkerJobLocLookup”方法每进行一次检查checkbo X,像这样的(伪)的东西:

'submit form': function(event, template) { 
    event.preventDefault(); 
    var workerid = template.find('#selworker').value; 

    foreach (checked checkbox czech) { 
     var jobLocation = czech.value; 
     Meteor.call('insertWorkerJobLocLookup', workerid, jobLocation, 
function(err) { 
      if (err) { 
      Session.set("lastErrMsg", err.message); 
      } else { 
      console.log(workerid + ' for ' + jobloc + ' inserted'); 
      } // else 
     }); // Meteor call   
    } 
    $('#selworker').val(""); 
    // TODO: Uncheck all the checkboxes 
} 

此部分:

foreach (checked checkbox czech) { 
    var jobLocation = czech.value; 

...伪代码的是我不知道该怎么通过选中的复选框做的第一循环,然后获得价值。

回答

3
$('input[type=checkbox]:checked').each(function(index){ 
    //part where the magic happens 
    console.log(index+' checkbox has value' +$(this).val()); 
}); 
0

Sindis的想法奏效了;这个作品:

$('input[type=checkbox]:checked').each(function(index) { 
    var workerid = template.find('#selworker').value; 
    var jobloc = $(this).val(); 

    Meteor.call('insertWorkerJobLocLookup', workerid, jobloc, function(err) { 
    if (err) { 
     Session.set("lastErrMsg", err.message); 
    } else { 
     console.log(workerid + ' for ' + jobloc + ' inserted'); 
    } // else 
    }); // Meteor call 
});