2012-06-23 43 views
0

我在頁面上使用jquery .load()和setTimeout()刷新另一個php頁面(同一網站)的div它。這個div雖然包含一個帶有兩個單選按鈕的表單,它們具有隨機名稱和ID。按下提交按鈕後,頁面被重定向到包含其他選項的表單頁面。我想要做的是提交表單而不重定向到默認表單頁面。通過jquery加載遠程窗體後停止刷新頁面ajax

p.s.提交後包含表單的div「消失」,另一個div與其他選項一起出現。我只是希望它從目標div中消失。我無法控制源頁面,也無法更改任何內容。

<div id="destinationdiv"> 
//source form that doesn't have id goes here 
</div> 

回答

1

您可以在頁面加載時將提交處理程序委託給表單,即使它在加載ajax之前不會存在。由於形態沒有標識,將使用它的父元素和

http://api.jquery.com/on/

$(document).on('submit', '#destinationdiv form', function() { /* "this" will be the form element*/ 


    /* serialize all fields for ajax submittal*/ 
    var data = $(this).serialize(); 

    /* ajax post data */ 
    $.post(url, data, function(data) { 
     /* do something with return data, or local html on success here*/ 
    }); 

    /* prevent browser default submit*/ 

    return false; 
}) 
+0

它的工作,非常感謝你! – Eli

0

也許你可以使自己的 「提交」,通過序列化形式(見JQuery的.serialize()),並通過AJAX(與$.get()$.post)發送它:

$('#myform').submit(function() { 

    $.post("pageThatUsesTheFormData.php", $(this).serialize(); 

    return false; 
}); 

(我認爲這是一個PHP頁面使用表單數據,但也可以是ASP.NET,無所謂)。

這樣的形式會不會實際上是「提交」作爲普通的HTML感(這是因爲return false;),但你仍然可以將數據發送到將處理它的頁面。如果您必須使用GET方法而不是POST,請使用$.get("url?"+$(this).serialize());

+1

形式沒有標識符,並且AJAX加載中...更好地delagate處理 – charlietfl

+0

形式標籤作爲選擇,所以我目前還沒有標識符使用另一種方法。不管怎麼說,還是要謝謝你! – Eli