Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从模板中获取多个选择(ed)列表值?_Javascript_Meteor - Fatal编程技术网

Javascript 如何从模板中获取多个选择(ed)列表值?

Javascript 如何从模板中获取多个选择(ed)列表值?,javascript,meteor,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="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事件中实现这一点,如果您将元素包装在
中,那么您可以像这样捕获
提交

返回false
(这样事件就不会冒泡并刷新页面)之前,您可以使用jQuery代码提取ID


或者,如果您不想使用表单,您可以只监听按钮本身上的单击事件:

Template.main.events({
  'click #add-to-team': function() {
    // jquery code here to extract the values
  }
});

明白了,我要做的就是这样:

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

有必要用标签把它包起来吗?为什么我不能在没有表单标签的情况下进行提交活动呢?meteor talk google group对此进行了长时间的讨论。似乎很多人已经放弃了表单标签,因为它们代表了请求/响应模型,而meteor则使用了反应模型,例如,您可以在字段输入上键入时更新字段。所以,也许你应该更新你的答案,以反映这样一个事实:一个人可以抓住任何事件,并用它做任何他们想做的事情,事件不被限制,甚至不需要,形成事件。那么我不需要它了?我能不能改为在活动中使用类似“单击提交”的方式?@JasonIp是的,您也可以使用单击事件。:)@Serkandurousoy更新-感谢您提供的信息。现在,我可能会坚持在我自己的代码中使用表单元素,如果没有其他原因,那就是它有助于我们的css框架做正确的事情。嗨,Jason,既然@DavidWeldon的答案对你有用,你为什么不继续把它标记为可接受的答案,这样以后读这篇文章的人都会知道去哪里看呢。
Template.main.events({
  'click #add-to-team': function() {
    // jquery code here to extract the values
  }
});
Template.main.events({
  'click #addToTeam' : function () {
    var array_of_values = $('#foo').val();
    //do something with array_of_values
  }
});