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 回答