2011-05-04 86 views
0

我想基於驗證結果加載表單的部分。這裏是我使用的代碼 對於窗體上的所有按鈕都是相同的。ajax加載禁用其他鏈接,表單即使提交即使返回false,

$("#button").click(function(e){ 
     e.preventDefault(); 
     noPgLoad(this); 
}); 
function noPgLoad(button){ 
    $.ajax({ 
    type: "POST", 
    url: url, 
    data : serialized_data, 
    success: function(data,textStatus,xhr){ 
      $('#somediv').replaceWith(data); 
      return false; 
      }, 
    error: fail, 
    dataType: "html" 
}); 
} 

在Django的觀點我檢查request.is_ajax() 問題:

  1. Ajax調用替換正確的驗證結果,但頁面上的其他鏈接不起作用。
  2. 當成功的ajax調用它後點擊按鈕提交form.i.e,jQuery的jQuery函數沒有被調用,所以表單被提交。 我的整個一天都是這樣,成爲阿賈克斯新手。任何想法都是值得歡迎的。

回答

0

我不知道關於你的第一個問題,但我認爲你可以使用livesee jquery docs)解決第二個代替click

$("#button").live('click', function(e){ 
    e.preventDefault(); 
    noPgLoad(this); 
}); 

要簡單解釋一下,當你使用click,它僅適用於頁面上的元素。我認爲你的代碼$('somediv').replaceWith(data)正在取代按鈕。點擊新按鈕不會觸發處理程序,因爲它是在附加處理程序後添加的。

當您使用live然後添加一個新按鈕,然後點擊新按鈕將觸發處理程序。

+0

謝謝阿拉斯代爾!我確實發現了這一點,但無法回答,因爲我沒有足夠的分數在8小時內回答我自己的問題.....欣賞它:)... http://stackoverflow.com/questions/1419433/jquery-not-勞動中的Ajax加載頁面 – stackover 2011-05-05 13:07:36

相關問題