如何从模板中获取多个列表值?

时间:2014-02-28 18:51:08

标签: javascript meteor

试图找到一种方法,这是代码,在我的模板中:

<template name="main">
  <select name="foo" multiple>
   {{each users}}
    {{>userinfo}}
   {{/each}}
  </select>
  <button type="submit" value="Submit">Add to team</button>
</template>

<template name="userinfo">
  <option value={{_id}}>{{username}}</option>
</template>

这样就创建了一个多重可选列表,但是如何在我的Meteor JS代码中获取这些多个值并对它们执行某些操作?我知道我可能会在Template.main.events中做一些事情但是我被困在那里,我知道在纯粹的JQuery中我会做类似的事情:

var users = [];
$('#foo :selected').each(function(i, selected){
  users[i] = $(selected).text();
});

只是不确定如何在Meteor事件中实现这一点

2 个答案:

答案 0 :(得分:4)

如果您将元素包裹在<form></form>内,那么您可以像submit一样抓住Template.main.events({ submit: function() { // jquery code here to extract the values return false; } }); event

return false

Template.main.events({ 'click #add-to-team': function() { // jquery code here to extract the values } }); 之前(因此事件不会冒泡并刷新页面),您可以使用jQuery代码来提取ID。


或者,如果您不想使用表单,您只需在按钮上侦听点击事件:

{{1}}

答案 1 :(得分:1)

知道了,我所要做的就是这样:

Template.main.events({
  'click #addToTeam' : function () {
    var array_of_values = $('#foo').val();
    //do something with array_of_values
  }
});