2014-03-30 25 views
0

我需要在提交表單時通過AJAX將一些數據保存到數據庫,然後恢復表單的默認操作並將其提交給PayPal。 以這種方式完成後,數據已成功保存在數據庫中,但表單不會進一步提交。jQuery在發送表單不起作用之前通過AJAX執行操作

$('#saveBeforePay').on('submit', function(e){ 
    e.preventDefault(); 
    $.post('ajax/save-cart', $(this).serialize()) 
    .done(function(response){ 
     if (response == 200) { 
      return true; 
     } 
    }); 
}); 

我嘗試另一種方式是這樣的

$('#saveBeforePay').on('submit', function(e){ 
    $.post('ajax/save-cart', $(this).serialize()) 
    .done(function(response){ 
     if (response != 200) { 
      e.preventDefault(); 
     } 
    }); 
}); 

現在表單提交,但數據不會保存到數據庫中。我從網絡選項卡此信息

請求頭注意:臨時標題顯示 而Status TextCanceled

這裏有什麼問題?

編輯:工作代碼

$('#saveOrder').on('click', function(e){ 
    e.preventDefault(); 
    var token = $('.token').val(); 
    $.post('ajax/save-cart', {token: token}) 
    .done(function(response){ 
     if (response == 200) { 
      $('#saveBeforePay').submit(); 
     } 
    }); 
}); 

回答

1

我通常是這樣做的是必須在形式的錨標記和初始事件綁定到而不是形式的onsubmit

$('a#submit').on('click', function() { 
    $.post('foo', {}).done(function() { 
     $(this).closest('form').trigger('submit'); 
    }); 

}); 

這樣你就不會妨礙正常的表單執行,所以你可以在你想使用它的時候調用submit事件。

+0

你救了我,工作很棒! –

+0

沒問題,很高興幫助。記得標記這是答案;) –

+0

是的,只需要等待5分鐘 –

相關問題