2011-06-15 54 views
5

我有一個表格。這個表單通過POST提交給一個iframe,然後處理這個請求,並根據結果執行一個javascript,根據提交的有效性更改父節點的內容。現在jQuery的攔截表單提交PARAM串

,我不喜歡這個過程。我希望能夠同時提交多個表單,但我只有這一個隱藏的iframe。所以我想用AJAX來做,爲每個表單提交創建一個單獨的請求。

然而,我的形式是複雜的;它包含向數組中添加變量的複選框,單擊的圖像以及我需要發送的點擊座標的複選框以及類似的複雜東西 - 這就是爲什麼我不計算每個輸入的值並將其添加到後置參數字符串(順便說一下:我不知道如何以這種方式創建數組),我寧願讓截獲的提交內容,保存爲包含所有這些參數的後綴字符串,然後將此字符串用於AJAX POST請求。

,我想在這個功能做的事:提前

$('#myForm').submit(function(event){ 

    // process the submission, e. g. event.getContent().toPostString(); 

    // create the AJAX request and send it and attach listeners (I know how to do this line ;) 

    return false; // I don't want the form submitted (to the iframe) 

}); 

謝謝!

回答

7

不要使用iframe,只需使用jQuery's ajax methods:(我在下面的示例中使用post()

$('#myForm').submit(function(event){ 

      //url   //post data 
    $.post(this.action, $(this).serialize(), function(returnData){ 
      //do something with returnData 
    }) 

    return false; //do not submit form the normal way 

}); 

下面是一個例子:http://jsfiddle.net/maniator/Y6r8E/
類型的東西到表單並提交。

+0

完美!驚人!哇,正是我需要的! – arik 2011-06-15 19:38:45

+0

@阿里克,所以沒有問題^ _^ – Neal 2011-06-15 19:39:23

+0

除了一兩件事,我只注意到。如果使用圖像作爲提交按鈕,則不會點擊位置(這不會太糟糕),但是即使點擊圖像(如果使用多個圖像作爲潛在提交按鈕)也不會通過。 – arik 2011-06-15 19:51:29

1

jQuery的serialize()功能將收集表單數據給你,通過阿賈克斯,以便輕鬆表單提交()或。員額()。