2012-01-21 64 views
2

我已經寫出了所有的代碼。我不完全確定你是否需要看到它來獲得想法。如何正確刷新包含表單的jquery/ajax?

基本上我使用基本的:

$("#formToLoadPageInto").load("thePageToLoad.php").fadeIn("fast"); 

現在,工作和所有,但加載頁面有一個形式。它在第一次使用該負載之前(提交表單),但之後(當它重新加載該代碼時),重新加載的頁面上的表單不再提交。 我讀過你不應該在$(document).ready(function(){身上放置那樣的東西,但它實際上一直在這個時間之外。所以我真的不知道什麼是錯的。

一切都基於不刷新頁面..到目前爲止我已經設法完成,但這個問題(和一些相關的)阻止我回來!希望有人能幫助我..

編輯:

也許這將幫助:

我有2周不同的div - 「後評價」和「發佈的評論」。

發表評論div有表單提交評論。這是一個加載到div的php頁面。這工作正常。當提交表單時,它使用此代碼:

$("#newpost").validate({ 
     debug: false, 
     submitHandler: function(form) { 
      // do other stuff for a valid form 
      $.post('postthought.php', $("#newpost").serialize(), function(data) { 
       $('#hideload').html(data); 
      }); 
     } 
}); 

運行後,我試着重裝發表的評論DIV(其中包含一個表單,在PHP中,加載所有發表的評論,查看和刪除)與

$("#formToLoadPageInto").load("thePageToLoad.php").fadeIn("fast"); 

如前所述。它的工作原理,並展示了新的內容,但我不能使用此頁面的表單中查看或刪除評論..

希望這不是太混亂..

+0

那麼,你的ajax響應的內容是否也包含一個表單呢?否則,表單將會被破壞。 – Jere

+0

您是否將整個頁面加載到'「#formToLoadPageInto」'?並且是''#formToLoadPageInto「'''ID'

'元素表示?換句話說,你是在''內放置''嗎? – 2012-01-21 17:10:00

+0

沒有窗體不被重新加載到窗體中,它被重新加載到窗體中.. – user1162534

回答

0

如果窗體本身被替換你或者需要重新應用表單提交的處理程序,或者使用委託給一個元素(可能是文檔本身)的處理程序,該處理程序不會被替換。

$('#formToLoadPageInto').on('submit','form', function() { 
    ... do submission... 
    $('#formToLoadPageInto').load('thePageToLoad.php').fadeIn('fast'); 
}); 
+0

我編輯了帖子..希望它現在更有意義! – user1162534

0
$("#formToLoadPageInto").empty().load("thePageToLoad.php?" + Math.random()).fadeIn("fast"); 
+0

@ user1162534防止緩存的隨機數 – thecodeparadox

+0

不應該在某處存在問號,最好是在php的擴展名和隨機數之間? – adeneo

+0

@adeneo謝謝。 – thecodeparadox

0

這聽起來像「發佈的評論」分區(其中包含用於查看/編輯一個新的形式)插入到DOM就好了,但你沒有初始化它的JavaScript控件。

例如,如果窗體上有評論列表,併爲每一個的「編輯」按鈕,這樣的事情在DOM準備好處理程序將工作:

$('#formToLoadPageInto').on('click','form input[name="editButton"]', function() { 
    var $this = $(this); 
    var formData = { 
     commentID: $this.val(), 
     commentBody: $this.siblings('textarea').text() 
    }; 
    $.post('editComment.php', formData, function(response) { 
     //.... 
    }); 
}); 

(這裏使用代表團「預線「一個單一的事件處理程序到所有當前和隨後插入的控件匹配給定的選擇器。)