event.target 在事件中未定义

event.target is undefined in events

如何在 events 中使用 each 输入值?希望我下面的代码能很好地解释你。

HTML:

<template name="UpdateAge">
    {{#each Name}}
    <div data-action="showPrompt">
       <div>
          Some content
       </div>

       <div>
         <div>
            Some content
         </div>
       </div>
       <div>
           Name : {{name}}
           Age : <input type="text" name="age" value="{{age}}"/> //I need to access age values in event
       </div>
    </div>
{{/each}}
<template>

JS:

Template.UpdateAge.events({
  'click [data-action="showPrompt"]': function (event, template) {
        console.log(event.target.age.value); // TypeError: event.target.age.value is undefined
  }
});

我不知道我的方法是否适合将参数值传递给 events 所以欢迎提出建议。

您使用的符号仅对表单元素有效,并且当 event.target 是表单元素时。

event.target.age.value

event.target is the element where the event occurred, event.currentTarget 是附加了事件处理程序的元素

如果您将 div 替换为 form,并将 target 替换为 currentTarget,那么它将起作用

event.currentTarget.age.value

here a fiddle 使用您的代码

如果事件绑定在容器上 div 那么应该从目标搜索输入,因为 event.target 会给你事件附加到的元素。

要访问 div 中的任何值,您必须首先访问该元素,然后使用该元素的属性访问所需的任何内容 - .value 在本例中。