Jquery 事件后增量触发

Jquery 事件后增量触发,jquery,ajax,forms,.post,Jquery,Ajax,Forms,.post,我正试图在我的网站上建立一个评论系统。我管理ajax部分,并将注释从表单提交到被调用的php文件,该文件随后将数据存储在mysql数据库中。存储后,数据将附加到allready现有注释中 我的问题是,如果你在同一页上的前一条评论之后再发表另一条评论,那么下一条评论就会添加两次。再做一次,下一次添加三次,以此类推。我想我在某处把jquery搞错了,但似乎找不到它 这是我正在使用的表单: <form class="short style" id="postnewscomment" na

我正试图在我的网站上建立一个评论系统。我管理ajax部分,并将注释从表单提交到被调用的php文件,该文件随后将数据存储在mysql数据库中。存储后,数据将附加到allready现有注释中

我的问题是,如果你在同一页上的前一条评论之后再发表另一条评论,那么下一条评论就会添加两次。再做一次,下一次添加三次,以此类推。我想我在某处把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>
查看
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;
     });
}