2011-08-30 30 views
1

序列化形式輸入我有許多隱藏的div形式和選擇用於示出一個單一的div。與jquery

但數據提交到服務器時,所有的數據都sended有的值都將丟失(在不同的div相同的名稱字段)。

這是一個場景例如:

<form> 
    <select> 
    <option value="ga">GA</option> 
    <option value="om">OM</option> 
    </select> 

    <div class="ga"> 
    <input type="text" name="a_field" /> 
    <input type="text" name="a_field_2" /> 
    ...code 
    </div> 

    <div class="om"> 
    <input type="text" name="a_field_2" /> 
    <input type="text" name="a_field_100" /> 
    ...code 
    </div> 

</form> 

如何我可以只做序列我想格?

我的第一種方法是刪除從給ajaxForm的beforeSerialize方法隱藏層,但現在我需要序列化的值單擊另一個鏈接,使另一電話(而不是提交表單)時。

在此先感謝

+1

爲什麼你的域相同的名稱? jQuery是剛剛傾倒在一個對象中的鍵 - 值對和傳遞_that_對象作爲參數。嘗試重命名你的領域,或者在爲一個數組使具有相同名稱的元素工作。的'<輸入名稱=「FOO []」 />(傳真<輸入名稱=「FOO []」 />' –

+0

我已經解決它拆卸的div,將其保存在一個數組中,renderizing需要時。但由於,布拉德和MaXo :) – pablorc

回答

1

可以手動做到這一點:

var serial = new Array(); 
var i = 0; 
$('.om input').each(function(){ 
    serial[i++] = $(this).attr('name')[0]+'='+$(this).html()[0]; 
}); 
serial.join('&'); 
+0

您的解決方案將釘在一個額外的'&'結尾。我糾正了。 – Dan