2015-09-27 34 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 
});