我是meteor的新手,在点击事件中遇到了一些问题。
代码是:
Template.addPost.events({
'click button':function(event){
event.preventDefault();
var postName=event.target.postName.value;
Posts.insert({
name:postName,
createdAt:new Date()
});
event.target.postName.value='';
}
});
HTML代码是:
<template name='addPost'>
<input type='text' placeholder='Add post here' name='postName'>
<button class="btn btn" type="button">Post</button>
</template>
但是在浏览器中单击按钮时,输入值不会插入到mongo数据库中。
答案 0 :(得分:1)
您无法使用
访问postName输入的值var postName=event.target.postName.value;
postName不是事件目标的成员(它本身就是按钮)。 添加id属性到输入并通过它访问值将解决您的问题。因此,请访问:
postName = $('#myinput').val();
答案 1 :(得分:1)
单击事件位于按钮上,但您想要引用插入中输入字段的值。您的name
字段已有input
,因此您可以使用jQuery和名称选择器来引用它:
Template.addPost.events({
'click button': function(event){
event.preventDefault();
var postName = $('input[name="postName"]').val();
Posts.insert({ name: postName, createdAt: new Date() });
$('input[name="postName"]').val('');
}
});
答案 2 :(得分:0)
您提供的信息非常有限。那里有几种不同的场景。
你确定你正在召集正确的活动吗?在Posts.insert()方法之上,尝试使用console.log postName变量。
你是否已经摆脱了自动发布和不安全的包裹?