Html Meteor处理同名的多个输入

Html Meteor处理同名的多个输入,html,forms,meteor,meteor-blaze,Html,Forms,Meteor,Meteor Blaze,如何处理meteor中同名的多个输入值,并从事件中获取数组 <input type="text" class="form-control valid" id="companyEmail" name="companyEmail[]"> 像在Meteor中一样,您可能在模板范围内工作,并动态创建这些输入 如果是这种情况,您需要为输入创建一个事件处理程序,然后使用“this”捕获并发使用的输入,下面是一个示例: html文件: <template name="emailForm

如何处理meteor中同名的多个输入值,并从事件中获取数组

<input type="text" class="form-control valid" id="companyEmail" name="companyEmail[]">


像在Meteor中一样,您可能在模板范围内工作,并动态创建这些输入

如果是这种情况,您需要为输入创建一个事件处理程序,然后使用“this”捕获并发使用的输入,下面是一个示例:

html文件:

<template name="emailForm">
  {{#each item in items}}
    <input name="email" class="email" placeholder="enter email address">
    <button class="addEmail">+</button>
  {{/each}}
</template>

查看“this”的结果,并了解如何提取所需的数据位,因为它只表示单击的项目。

到目前为止,在Blaze模板中确定事件范围的最简单方法是在需要捕获事件的级别定义模板

如果您有:

 <template name="companyEmails">
 {{#each companyEmail}}
   <input type="text" class="form-control valid" id="companyEmail" name="companyEmail[]">
 {{/each}}
 </template>
然后,您可以将事件处理程序附加到较低级别的模板,并确保在具有适当数据上下文的正确对象上获得正确的事件:

 Template.oneCompanyEmail.events({
   'input #companyEmail': function(ev,err){
     var emailAddress = ev.target.value;
     console.log(this); // will be the value of companyEmail from the #each
   }
 });

事实上,表单也包含其他输入,我在模板范围外处理电子邮件,在这种情况下可能吗?因为从Meteor开始,我只在模板中工作。路由和模板有很短的学习曲线,一旦掌握了,就没有理由在模板之外做任何事情。这很难接受,但在某种程度上,如果不在模板中工作,就会错过很多可能让您首先选择Meteor的特性和功能。但是,当然,每个人都有自己的偏好…您的代码部分不正确,因为您不能在同一页上多次使用相同的
id
。从OP复制了该模式。您是对的,唯一的id在这里会更好,例如
id={{this.\u id}
 <template name="companyEmails">
 {{#each companyEmail}}
   {{> oneCompanyEmail}}
 {{/each}}
 </template>

 <template name="oneCompanyEmail">
 <input type="text" class="form-control valid" id="companyEmail" name="companyEmail[]">
 </template>
 Template.oneCompanyEmail.events({
   'input #companyEmail': function(ev,err){
     var emailAddress = ev.target.value;
     console.log(this); // will be the value of companyEmail from the #each
   }
 });