2012-10-17 118 views
0

我有一個用於提交表單的ajax請求。AJAX請求不提交我的表格

$('#position'+i).change(function() { 
     var data = $(this).attr('value'); 
     var form = $('#pages_form'); 
     $.ajax({ 
      type: "POST", 
      url: form.attr('action'), 
      data: data, 
      succes: alert('Postion has been saved') 
     }); 
    }); 

它dosent似乎想要去的天氣我硬編碼它或使用窗體操作屬性。我需要做什麼才能讓我提交表格。

它的奇怪,因爲如果我點擊輸入它會提交表單,但它會繞過ajax請求。

回答

0

這不是如何回電的作品也成功拼錯了。您將函數名稱或匿名函數傳遞給成功方法。

工作版本:

$('#position'+i).change(function() { 
     var data = $(this).attr('value'); 
     var form = $('#pages_form'); // Is this an id? 
     $.ajax({ 
      type: "POST", 
      url: form.attr('action'), 
      data: data, 
      success: function() { 
       alert('Postion has been saved'); 
      } 
     }); 
    }); 
+0

我chnaged回調,但它仍然不提交我的表格 –

0

你的問題很可能在於你用它來獲取表單選擇:

var form = $('pages_form'); 

沒有HTML標籤名爲pages_form;)

此外,您指定回調的方式顯然是錯誤的。

1
var form = $('pages_form'); 

這是壞的,這是什麼樣的選擇器,theres沒有pages_from標籤,據我所知。 它應該是

var form = $('#pages_form'); 

如果它的id。

如果類然後

var form = $('.pages_form'); 
+0

謝謝我沒有意識到我離開英鎊簽署。 –

+0

小心.......!愚蠢的東西浪費了大量的時間:) – geekman

0

一對夫婦更正:

var form = $('pages_form'); 

是不是指一個有效的元素。如果「pages_form」是你的表單的id,那麼你需要使用:

var form = $('#pages_form'); 

此外,您還拼錯了「成功」,並且它不具有格式需要。將該行更改爲

success: function() {alert('Postion has been saved');} 

我認爲這些修復後的代碼應該可以正常工作。 :)

好的,那麼需要一些驗證,雖然它們可能看起來很明顯。

  1. 確保我包含一個值,並且有一個輸入元素與相應的ID,所以如果我等於1,那麼你有一個ID爲'position1'的輸入元素。
  2. 確保您的表單具有正確設置的正確操作屬性。
+0

作出了所有的更改,但仍未提交 –

+0

是編碼警報,以確保正在發送的數據是正確的,並確保正確的文本框被髮送,一切都是正確的它只是不會提交表單。仍然不是運氣 –

+0

爲什麼不只是使用form.submit()而不是整個ajax調用?除非你想忽略那種形式內的其他領域... – andrux