如何在each
中使用events
输入值?希望我的下面的代码能很好地解释你。
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
,所以欢迎提出建议。
答案 0 :(得分:16)
您使用的符号仅对表单元素有效,并且当event.target是表单元素时。
event.target.age.value
event.target是事件发生的元素,event.currentTarget是附加事件处理程序的元素
如果您将div
替换为form
并将target
替换为currentTarget
,那么它将起作用
event.currentTarget.age.value
here a fiddle使用您的代码
答案 1 :(得分:1)
如果事件绑定在容器div上,则应从目标中搜索输入,因为event.target
会为您提供事件所附加的元素。
要访问div
中的任何值,您必须首先获得对该元素的访问权限,然后使用该元素的属性来访问所需的任何内容 - 在这种情况下为.value
。