构建实时评论功能

时间:2017-11-11 13:56:40

标签: javascript firebase-realtime-database html-form

我正在尝试为所有帖子用户时间线页面添加实时评论功能。 这就是我所做的:

所有帖子都包含以下html格式的评论部分:

<form action="#" class='post-comment' data-id='3214'>
    <input type="text" name='comment'>
    <input type='submit' style='visibility: hidden;'>
</form>

以下是处理表单提交事件的Javascript代码:

 $(".post-comment").on('submit', function(e){
    e.preventDefault(); //STOP default action
    var id = $(this).attr("data-id");
    console.log('Comment on: '+id);
    var dbref = firebase.database().ref('post-user/'+id+'/comments');
    var data = $(this).serialize();
    var t = Date.now();
    dbref.push().set({
      postedAt: t,
      text:data.comment,
      pid:id
    });
})

当用户按下回车键后输入一些作为注释后,网页重新加载而不是在Javascript中调用函数。

我想获取评论数据和相应的帖子详细信息(id,authorid),并在输入按键时将评论数据发送到firebase。

在做了一些搜索之后,我开始了解关键的新闻事件,如下所示:

 $("input").keypress(function(event) {
     if (event.which == 13) {
     event.preventDefault();
     $("form").submit();
    }
});

但在这种情况下,我有多个表单,每个帖子都包含相应的评论表单,所以我很困惑如何在这里实现。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

将表单设为id

<form id='comment-form' action="#" class='post-comment' data-id='3214'>

然后提交该表格:

$("input").keypress(function(event) {
  if (event.which == 13) {
    event.preventDefault();
    $("#comment-form").submit();
  }
});