2014-01-26 55 views
2

我有一個簡單的表單提交ajax調用。 它在我調試時工作,即警報彈出,但運行時它不起作用?爲什麼jQuery ajax調用只在Chrome中調試時才起作用?

這似乎有點神祕的給我。

$(function(){ 

    $("#signUpForm").submit(function(){ 
     var request = $.ajax({ 
      url:"php/newUser.php", 
      type:"POST" 

     }); 

     request.done(function(msg){ 
      alert(msg); 
     }); 


    }); 
}); 
+0

你是不是'$ .ajax'要求 – Victor

+2

@Victor而你是正確的這種情況中發送任何數據寫的console.log偶然的機會,有沒有理由爲什麼AJAX請求不能/不應該沒有數據集 –

+0

它只是一個旁註。因爲該文件名看起來像'newUser.php',應該通過一些數據吧:)) – Victor

回答

9

如果您運行的.submit()處理表單的Ajax調用,Ajax請求將觸發但隨後的形式將繼續提交,從而刷新頁面,絕不解僱你的回調函數。

相反,你應該在提交處理函數的末尾調用event.preventDefault()以防止瀏覽器有一個新的HTTP請求通常會在提交表格。要做到這一點,你需要添加event作爲參數傳遞給回調函數,就像這樣:

$("#target").submit(function(event) { 
    alert("Handler for .submit() called."); 
    event.preventDefault(); 
}); 

它的工作原理的原因,當你調試是因爲一切都爲您逐步通過緩慢發生,而瀏覽器提交形成。

0

檢查的情況下,如果你已經在你的方法

相關問題