使用回车键提交多次

时间:2012-08-10 13:12:52

标签: jquery ajax

我正在使用评论系统的画廊。这意味着当我点击下一个和上一个时,然后加载带有注释的新图片。但问题是我正在使用一个评论框,当我打开一张图片并为​​其提交评论时,它只提交相同的评论一次(它的工作方式),但是当我点击下一张图片时(图2)并为其提交评论,评论提交两次(而不是一次),第三次提交三次,依此类推。这是我的jquery代码希望有人帮助我这个

$('body').on('keyup', '#stg_cmtarea', function(e) {

    if (e.which == 13 && $.trim(this.value).length) {
        var picId = $(".gal_cmt_cnt_info").attr('gdata');
        var userId = $("#mipicview-overlay-content").attr('vwid');
        var comment = $("#stg_cmtarea").val();
        var dataString = 'comment=' + comment + '&pic_id=' + picId + '&user_id=' + userId;
        if ($.trim(comment).length == 0) {
            alert("Please Enter Comment Text");
        }
        else {
            $.ajax({
                type: "POST",
                url: "modules/gallery/piccomment_ajax.php",
                data: dataString,
                cache: false,
                success: function(html) {
                    alert(html);

                }
            });
        }
        return false;
    }
});​

2 个答案:

答案 0 :(得分:1)

我认为这段代码没有任何问题。它应该像你每次重新绑定keyup事件一样,并且事件只是被绑定到评论框太多次了。

答案 1 :(得分:0)

在我的iPad上书写,所以测试任何东西并不容易,但你可以这样:

更改

$('body').on('keyup','#stg_cmtarea',

使用

$('body').on('submit','#yourformid',

然后你应该删除e.which-part。如果你真的想在enter-push上提交,你可以创建一个侦听输入的函数。

这应该可以解决您的问题。请记住始终返回false,因此表单未提交。