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

Cannot get the input value using click event in meteorjs

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

您提供的信息非常有限。那里有几个不同的场景。

您确定您调用的是正确的事件吗?在 Posts.insert() 方法上方,尝试 console.log postName 变量。

你有没有摆脱自动发布和不安全的包?

您无法使用

访问 postName 输入的值
var postName=event.target.postName.value;

postName 不是事件目标(即按钮本身)的成员。 将 id 属性添加到输入并访问它的值将解决您的问题。所以访问它:

postName = $('#myinput').val();

点击事件发生在按钮上,但您想在插入中引用输入字段的值。您的 input 字段已经有一个 name,因此您可以使用 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('');
  }
});