-2

こんにちは、J はJavascriptに問題があります。これがコードです。

function reply_click(clicked_id) {
    var la = <? php echo json_encode($logOptions_id); ?> ;
    var mood = clicked_id;
    $.post('msg.php', {
        myne: la,
        mood: mood
    }, function (data) {
        $('#nov').html(data);
    });
    $('#postDiv').on('keydown', '#textarea', function (e) {
        if ((e.which == 13) && !event.shiftKey) {
            var textarea = $("#textarea").val();
            $.post('pst.php', {
                mibe: la,
                voot: mood,
                pst: textarea
            }, function (data) {
                var textarea = $("#textarea").val('');
            });
        }
    });
}

問題は、clicked_idメッセージを投稿した後、取得したアイテムをクリックしたときですが、もう一度アイテムをクリックすると、2番目のIDが取得され、入力ボタンを投稿した後、最初のアイテムと2番目のアイテムの違いIDがデータベースに投稿されます。値が重複しているようで、異なるアイテムをクリックした回数、異なるIDを取得しており、この問題がDBにスパムを送信しています。

4

1 に答える 1

3

ボタンをクリックするたびに、別のkeydownバインドが に追加され#textareaます。したがって、ボタンを 5 回クリックすると、Enter キーを押すとキーダウン バインディングが 5 回実行されます。

関数の外に移動$('#postDiv').on('keydown', '#textarea', ...)し、ドキュメントの準備が整ったハンドラーで一度だけ実行する必要があります。

于 2013-07-19T05:58:29.870 に答える