2014-02-28 48 views
0

我不知道爲什麼ajax而不是發送請求到指定的url,它使請求到相同的鏈接。 在整個頁面中只有這個ajax請求表現怪異。請給我一些光在這個問題上Ajax錯誤,獲取請求參數在同一鏈接追加

 $(document).ready(function(){ 
      $("#phoneForm").submit(function(){ 
    $.ajax({ 
      type: "POST", 
      url: "http://example.com/chat.pl", 
      data: $('form#phoneForm').serialize(), 
      success: function(data) 
      { 
      if(data==="1") 
      { 
      $('#phoneResult').html('Thank you');//hide button and show thank you 
      $('#phone_modal').modal('toggle'); 
      } 
      }, 
         error: function(){ 
         alert("failure"); 
        } 
     }); 
     }); 
    }); 

形式的內容:

 <form class='horizontal' id='phoneForm' name='phoneForm' accept-charset='utf-8'> 
    <input type='text' pattern='\\d*' id='phoneNumber' name='number'/> 
     <button class='btn btn-dark' type='submit'>submit</button> 
</form> 

編輯:

我加入了Ajax錯誤功能。它給AJAX提交前警告,並給請求相同的頁面

+0

分號在AJAX功能 – kamesh

+0

缺少加入分號。同樣的錯誤持續 – gzix

+1

什麼樣的數據從服務器獲得響應?json或text或html? – kamesh

回答

1

如果我理解正確的話,你希望異步提交表單?

嘗試用一個event.PreventDefault()是這樣的:

$("#phoneForm").submit(function (event) { 
    $.ajax({ 
     type: "POST", 
     url: "http://example.com/chat.pl", 
     data: $('form#phoneForm').serialize(), 
     success: function (data) { 
      if (data === "1") { 
       $('#phoneResult').html('Thank you');//hide button and show thank you 
       $('#phone_modal').modal('toggle'); 
      } 
     }, 
     error: function() { 
      alert("failure"); 
     } 
    }); 
    event.preventDefault(); 
}); 
+0

嗨,我使用了返回假,並認爲昨天回答我自己的答案。但我不知道它是如何工作的。請解釋爲什麼沒有event.preventDefault()或不返回false。 – gzix

+1

對不起,花了這麼長的時間來回答。這是因爲您的提交處理程序(函數(事件))默認不會重新提交提交事件,它只允許您在觸發前執行其他代碼。 preventDefault或返回false只是取消該觸發器。此外,請參閱[this](http://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-false)中preventDefault和返回false之間的區別。 – valentin

0

嘗試添加

method="POST" 

<form class='horizontal' id='phoneForm' name='phoneForm' method="POST" accept-charset='utf-8'> 
+0

它再次發出請求到相同的網址 – gzix