我正在尝试在我的网站上建立评论系统。我管理ajax部分,注释从表单提交到被调用的php文件,然后将数据存储在mysql db中。存储后,数据将附加到已存在的注释中。
我遇到的问题是,如果您在前一个评论之后发布另一个评论,那么下一个评论会被添加两次。再做一次,下一次添加三次,依此类推。我想我的某个地方的jquery错了,但似乎无法找到它。
这是我正在使用的表格:
<form class="short style" id="postnewscomment" name="postnewscomment" onsubmit="javascript:postnewscomments();">
<textarea style="width:95%;" name="commenttext" required data-required="true" placeholder="Uw comment" /></textarea>
<input type="hidden" name="task" value="addcomment" />
<input type="hidden" name="postername" value="<? echo $_SESSION['user_id']; ?>" />
<input type="hidden" name="newsid" value="<? echo $newsid; ?>" />
<div class="button">
<button value="postnews" name="Submit" type="submit">Add Comment</button>
</div>
</form>
这是我的jquery代码,由表单调用:
function postnewscomments() {
$("#postnewscomment").submit(function(e){
e.preventDefault();
var hasError = false;
var url = "postnewscomments.php";
var texttopost = "#postnewscomment";
if(hasError == false) {
$.post(url, $(texttopost).serialize() ,function(data) {
$(data).hide().appendTo("#newscomment").fadeIn(1000);
// code to reset form values to empty
$( '#postnewscomment' ).each(function(){
this.reset();
});
});
}
return false;
});
}
答案 0 :(得分:0)
查看submit()
方法:
将事件处理程序绑定到“提交”JavaScript事件或触发器 元素上的那个事件。
所以应该只调用一次(当页面加载时)而不是每次提交。