试图找到一种方法,这是代码,在我的模板中:
<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事件中实现这一点
答案 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
}
});