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

Submitting data through forms into a collection

我正在创建反馈 modal,允许用户向我提交有关网页的反馈。模态框内 形式 的代码是:

 <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'
});
}

此外,我正在使用 collections 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()
  }
}
}));

问题是我无法借助表单将反馈插入集合,但借助控制台,我可以插入数据。

这里有很多错误,但以下应该提供快速修复:

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

这些更改应该可以正常工作,但您仍然需要花时间查看整个内容 - 例如,您的 formclass feedbackForm,这是与您的 inputname 及其 id 相同 - 非常混乱。

您可能还想考虑使用 textarea 而不是简单的 text input 作为反馈表。