jquery的.serializeArray()方法可以獲取形如以下 name value組成的對象數組,如果我們想得到key為name,value為value的json對象,則如下轉換: 但是這麼轉換有一個弊端,就是checkbox,覆選框有多個name相同的值,最後只留下了最後一個,如果想把覆選 ...
jquery的.serializeArray()方法可以獲取形如以下
[ {name: 'firstname', value: 'Hello'}, {name: 'lastname', value: 'World'}, ]
name value組成的對象數組,如果我們想得到key為name,value為value的json對象,則如下轉換:
var m = {}; $.each($("form").serializeArray(), function(i, field){ m[field.name]=field.value; });
但是這麼轉換有一個弊端,就是checkbox,覆選框有多個name相同的值,最後只留下了最後一個,如果想把覆選框多個name相同的值存為數組,有一個解決辦法是辦json對象的值全變為數組類型,如下:
var m = {}; $.each($(v).find(".panel-body form").serializeArray(), function(i, field){ if(!m.hasOwnProperty(field.name)){ m[field.name]=[]; } m[field.name].push(field.value) });
這樣可以保證覆選框的值存為一個數組,但是其他值要通過 m.key[0]來獲取了。
這裡註意,在頁面中除了單選按鈕 覆選框寫多個相同的name值以外,其他不要出現name相同的表單哦。
jquery方法.serializeArray()還有一個弊端,就是不能獲取input file添加的圖片元素。