0

コメント制のギャラリーに取り組んでいます。これは、次と前をクリックすると、コメント付きの新しい写真が読み込まれることを意味します。しかし、問題は、コメントボックスを使用していることです。このコメントボックスでは、写真を開いてコメントを送信すると、同じコメントが1回だけ送信されます(動作する方法)が、次の写真をクリックすると(写真2)コメントを送信すると、コメントは1回ではなく2回送信され、3番目の写真は3回送信されます。これが私の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;
    }
});​
4

2 に答える 2

1

このコードに問題はありません。キーアップイベントを毎回再バインドしていて、イベントがコメントボックスに何度もバインドされているように見えるはずです。

于 2012-08-10T13:33:09.313 に答える
0

私のiPadで書いているので、何かをテストするのは簡単ではありませんが、これを試してみることができます:

変化する

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

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

次に、e.which-partを削除する必要があります。本当にenter-pushで送信したい場合は、enterでリッスンする関数を作成できます。

これで問題が解決するはずです。フォームが送信されないように、常にfalseを返すことを忘れないでください。

于 2012-08-10T13:19:47.957 に答える