2012-02-14 31 views
35

您可以將多個表單序列化爲一個,以便只發佈一個帖子或ajax請求?我已經搜索過,並且都是通過post/ajax分隔提交每個表單。將多個表單串聯在一起?

+2

[你有沒有嘗試過避免不必要的字段? http://jsfiddle.net/C4pd5/](http://jsfiddle.net/C4pd5/) – Matt 2012-02-14 16:51:08

+0

可能重複[合併值從兩個表單提交](http://stackoverflow.com/questions/2341001/merge -values-from-two-forms-on-submit) – Azd325 2014-02-12 11:16:00

回答

22

當您使用jQuery serialize()函數時,它只是將格式轉換爲a=1&b=2&c=3格式的字符串。所以你當然可以將這個函數應用於兩種形式,並將結果連接起來,在它們之間使用&,並在你的ajax調用中使用結果。您需要進行一些檢查,以確保在進行連接時兩個字符串都不爲空。

115

如果多種形式的網頁上運行$('form').serialize(),它會正確地序列所有的形式成一個字符串。

要只包括某些形式,使用$('#form1, #form2').serialize()

+0

謝謝,真棒解決方案! – di3sel 2013-12-12 08:07:34

+1

@ 472084我試過'$('#form1,#form2')。serialize()'方法,但沒有得到它的工作,只有最後的形式纔會被髮布。我必須將其分成2個,第二個只在第一個驗證後出現(這就是爲什麼我必須將它分成2個)。因此,第一次提交不會提交數據,但只是驗證,而最後一次提交將兩個表單序列化並提交所有數據。我最終不得不分別序列化兩個表單,並用'&'連接它們以使其工作。你知道的任何文件都可以直接閱讀爲什麼會失敗?我會繼續使用搜索網絡 – 2014-02-19 00:06:05

+0

2015年還不錯 – mko 2015-02-25 10:40:34

17

我想從上面Jleagle答案。

,如果你是更具體的有關表格,使用

$('#detailsform,#levelForm').serialize(); 

上述行會返回一個字符串值。像customId=08071992&cort=01&empId=7777

您可以通過添加屬性disabled="disabled"到輸入字段

+1

感謝您指出'input [disabled]'不包含在'$()。serialize()'中。 – Gideon 2016-07-01 02:49:31

相關問題