0

私はこれについて奇妙な考えを持っています。フォームを送信し、最後のアラート部分にコメントを追加するたびに、ajax は実行されませんが、再度コメントすると続行されます。何故ですか?

$(document).ready(function () {
    $('.finalize').live('click', function () {
        $('#prodTbl tbody tr').each(function () {
            var epx = $(this).attr('id');
            var qty = $(this).find('.qty').val();
            arr.push({
                'idprod': epx,
                'qty': qty
            });
        });

        $.each(arr, function (index, value) {
            newArr.push([value.idprod, value.qty]);
        });

        var c = JSON.stringify(newArr);
        var dataString = 'arr=' + c;

        $.ajax({
            type: "POST",
            url: "/recordTrans",
            data: dataString,
            cache: false,
            success: function (data) {
                alert(data);
            }
        });

        alert("1");
    });

});

これがコメントされている場合、ajax は実行されません。本当に奇妙ですか、それともエラーがトラップされていないためですか?

4

1 に答える 1

2

それが送信ボタンであると仮定すると.finalize、クリック イベント ハンドラーから false を返すことによってページの送信を停止していないため、クリックするたびにページが送信されます。このため、リクエストを完了する前に ajax 呼び出しが中止されます。

アラートがある場合、ブラウザは ajax リクエストを作成してそれを処理するのに十分な時間があります。

これを試して。

$('.finalize').live('click', function() {

    //Your code without alert

    return false;
});
于 2013-02-21T01:13:57.143 に答える