2013-02-21 26 views
0

我一直對此有奇怪的想法。無論何時我提交表單並向最後一個警報部分添加註釋,ajax都不會執行,但是當我再次發表評論時,它就會繼續。這是爲什麼?爲什麼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執行。真的很奇怪,還是因爲未經處理的錯誤?

回答

2

假設.finalize是一個提交按鈕,無論何時點擊它,頁面都會被提交,因爲您不是通過從click事件處理程序返回false來阻止頁面提交。由於這個原因,ajax調用在它完成請求之前就會中止。

當您有警報時,瀏覽器有足夠的時間發出ajax請求並完成它。

試試這個。

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

    //Your code without alert 

    return false; 
}); 
+0

Gaahhh。非常感謝。這就是修復....:DDDD – 2013-02-21 01:16:27

相關問題