Jquery 事件后增量触发
我正试图在我的网站上建立一个评论系统。我管理ajax部分,并将注释从表单提交到被调用的php文件,该文件随后将数据存储在mysql数据库中。存储后,数据将附加到allready现有注释中 我的问题是,如果你在同一页上的前一条评论之后再发表另一条评论,那么下一条评论就会添加两次。再做一次,下一次添加三次,以此类推。我想我在某处把jquery搞错了,但似乎找不到它 这是我正在使用的表单:Jquery 事件后增量触发,jquery,ajax,forms,.post,Jquery,Ajax,Forms,.post,我正试图在我的网站上建立一个评论系统。我管理ajax部分,并将注释从表单提交到被调用的php文件,该文件随后将数据存储在mysql数据库中。存储后,数据将附加到allready现有注释中 我的问题是,如果你在同一页上的前一条评论之后再发表另一条评论,那么下一条评论就会添加两次。再做一次,下一次添加三次,以此类推。我想我在某处把jquery搞错了,但似乎找不到它 这是我正在使用的表单: <form class="short style" id="postnewscomment" na
<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>
查看submit()
方法:
将事件处理程序绑定到“提交”JavaScript事件或触发器
元素上的事件
因此,应该只调用一次(当页面加载时),而不是每次提交时
将其更改为“$(窗口).bind(“加载”,函数(){postnewscomments();});”这就成功了!真不敢相信这有多简单,而且我之前没有发现这个。。。对JS和Jquery来说仍然是新的,但开始时并不容易:(Thx提供帮助!
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;
});
}