无法使用meteorjs中的click事件获取输入值

时间:2016-06-27 05:27:07

标签: javascript jquery meteor meteor-blaze

我是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数据库中。

3 个答案:

答案 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变量。

你是否已经摆脱了自动发布和不安全的包裹?