鍍金池/ 問(wèn)答/Java  網(wǎng)絡(luò)安全  HTML/ jquery怎么將多個(gè)相同表單轉(zhuǎn)成json數(shù)組形式。

jquery怎么將多個(gè)相同表單轉(zhuǎn)成json數(shù)組形式。

比如,有這樣一個(gè)需求,一個(gè)人可以添加多條實(shí)習(xí)經(jīng)歷,我在頁(yè)面可以點(diǎn)擊一個(gè)按鈕來(lái)添加多個(gè)實(shí)習(xí)經(jīng)歷的form,這個(gè)表單的內(nèi)容是一樣的,class也是一樣,每個(gè)表單轉(zhuǎn)成的json格式就是
{Id: "1",name: "xsx",content:"this is a example"},這個(gè)我是獲取到了。
多個(gè)相同表單(input name值相同)的格式要求是:
[ {Id: "1",name: "xsx",content:"this is a example"}, {Id: "1",name: "xsx",content:"this is a example"},{Id: "1",name: "xsx",content:"this is a example"},... ]
現(xiàn)在的問(wèn)題是我用遍歷的方法把每個(gè)表單push進(jìn)一個(gè)數(shù)組里面,但出來(lái)的是{Id: ["1","2","3"],name: ["xsx","sdw","www"],content:["this is a example1","this is a example2","this is a example3"]}這種形式,完全不對(duì)啊。
這是表單的轉(zhuǎn)換函數(shù)

這是我遍歷的函數(shù):
圖片描述

求助!

回答
編輯回答
孤星

JSON.stringify不需要吧

2018年1月12日 07:58
編輯回答
淺淺

var data = $('.bbbb').serializeObject() 這里應(yīng)該把所有表單的值都放在一起了,沒(méi)有對(duì)不同表單進(jìn)行分組存儲(chǔ),
這里推薦https://github.com/marioizqui... 這個(gè)組件轉(zhuǎn)成json,

偽代碼差不多這樣

var datas , data;
$('.bbbb').each(function(){
    data = serializeJSON($(this));
    datas.push(data);
})
//datas 為總數(shù)據(jù),data為每個(gè)表單的數(shù)據(jù); 
2017年10月1日 18:35
編輯回答
下墜

謝謝大家,已經(jīng)解決。下面是我的解決辦法:
當(dāng)個(gè)表單序列化:
圖片描述

遍歷多個(gè)表單:
圖片描述

其中,$(".xxx_form")為表單的class,(因?yàn)閕d值是唯一,所以這里用類(lèi)選擇器),關(guān)鍵在遍歷內(nèi)容

json.push($(this).serializeObject());這個(gè)$(this)就是解決這個(gè)問(wèn)題的關(guān)鍵,也是我忽略的地方。

返回的json變量就是我想要的。

2018年8月11日 22:01
編輯回答
影魅
$.fn.serializeObject = function(){
  var result = []
  $(this).each(function(){
    var obj = {}
    $($(this).serializeArray()).each(function(){
      obj[this.name]=this.value;
    })
    result.push(obj);
  })
  return result;
}
2017年8月4日 21:37