通过表单将数据提交到集合中

时间:2017-06-21 07:58:00

标签: meteor meteor-blaze

我正在创建反馈模式,允许用户向我提交有关该网页的反馈。模态中表单的代码是:

 <div class="modal-body">

 <form class='feedbackForm'>
 <div class="form-group">
 <label for="form-control">Feedback</label>
 <input type="text" class="form-control" name="feedbackForm" 
 id="feedbackForm" placeholder="Feedback">
 </div>

 <div class="modal-footer">
 <button type="button" class="btn btn-secondary" data-
 dismiss="modal">Close</button>
 <button type="submit" class="btn btn-primary">Submit Feedback</button>
 </div>

 </form>
 </div>

和它的帮助是:

"submit .feedbackForm": function(event){
var Feedbackvar = event.target.Feedbackvar.value;

//Insert feedback
Feedback.insert({
  FeedbackData: 'Feedbackvar'
});
}

另外,我使用了集合2包,并为反馈集合定义了一个模式:

Feedback = new Mongo.Collection("feedback");
Feedback.attachSchema(new SimpleSchema({
FeedbackData:{
type: String
},

userId:{
type: String,
autoValue: function(){
  return Meteor.userId()
}
},

CreatedAt:{
  type: Date,
  autoValue: function(){
    return new Date()
  }
}
}));

问题是我无法在表单的帮助下将反馈插入到集合中,但在控制台的帮助下,我可以插入数据。

1 个答案:

答案 0 :(得分:0)

这里有很多错误,但以下内容应该提供快速解决方法:

  • event.target.Feedbackvar.value更改为event.target.feedbackForm.value
  • Feedbackvar中的引号中取出insert - 这只是试图插入string&#34; FeedbackVar&#34;

这些更改应该会有效,但您仍然希望花时间审核这一切 - 例如,您的formclass feedbackForm,这是与name的{​​{1}}及其input相同 - 非常令人困惑。

您可能还需要考虑id而不是简单的textarea来获取反馈表单。