2013-02-21 153 views
4

我有一個簡單的AJAX表單,它在我提交時應該可以正常工作。但是,如果我然後將新數據輸入到同一表單中(而不刷新頁面),那麼它將提交表單兩次。如果我第三次這樣做,那麼它會三次提交表格,依此類推。它爲什麼這樣做?這裏是我的代碼:爲什麼我的jquery ajax表單在第一次提交時提交一次,在第二次提交時提交兩次...?

$(document).ready(function(){ 
    $("#myForm").submit(function() { 
     var myField = $('#myID).val(); 
     $.ajax({ 
      type: "POST", 
      url: 'myFile.php', 
      dataType: 'html', 
      data: {myData:myField}, 
      success: function(data){ 
       alert(data); 
      } 
     }); 

     return false; 
    }); 
}); 
+1

您是否可以複製並粘貼真實代碼中的代碼而不是輸入提取物? – Popnoodles 2013-02-21 01:28:36

回答

9

即使我在開發AJAX登錄表單時遇到了同樣的問題。 Google搜索幾個小時後,我找到了一個解決方案。我希望這能幫助你。

基本上你必須取消綁定你的ajax請求完成後,表單提交動作的當前實例。 因此在之前加上這一行返回false;

$("#myform").unbind('submit'); 

因此整個代碼看起來應該像



    $(document).ready(function(){ 
     $("#myForm").submit(function() { 
      var myField = $('#myID).val(); 
      $.ajax({ 
       type: "POST", 
       url: 'myFile.php', 
       dataType: 'html', 
       data: {myData:myField}, 
       success: function(data){ 
        alert(data); 
       } 
      }); 

      /* Add this line */ 
      $("#myform").unbind('submit'); 
      return false; 
     }); 
    }); 

 
+0

你讓我的一天+1 – Jack 2014-08-02 20:27:41

+0

地獄是啊@Jack – 2017-11-25 22:52:17

0

解除綁定形式可以打破你的Ajax從。我發現,只要我首先聲明表單。

$('#my_form').ajaxForm 

所有按預期工作,並遵循標準協議。我只是花了一天在表單提交上追蹤'缺少模板'的錯誤,因爲我沒有綁定表單。

相關問題