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

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

比如,有這樣一個需求,一個人可以添加多條實習經(jīng)歷,我在頁面可以點擊一個按鈕來添加多個實習經(jīng)歷的form,這個表單的內容是一樣的,class也是一樣,每個表單轉成的json格式就是
{Id: "1",name: "xsx",content:"this is a example"},這個我是獲取到了。
多個相同表單(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)在的問題是我用遍歷的方法把每個表單push進一個數(shù)組里面,但出來的是{Id: ["1","2","3"],name: ["xsx","sdw","www"],content:["this is a example1","this is a example2","this is a example3"]}這種形式,完全不對啊。
這是表單的轉換函數(shù)

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

求助!

回答
編輯回答
孤星

JSON.stringify不需要吧

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

var data = $('.bbbb').serializeObject() 這里應該把所有表單的值都放在一起了,沒有對不同表單進行分組存儲,
這里推薦https://github.com/marioizqui... 這個組件轉成json,

偽代碼差不多這樣

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

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

遍歷多個表單:
圖片描述

其中,$(".xxx_form")為表單的class,(因為id值是唯一,所以這里用類選擇器),關鍵在遍歷內容

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

返回的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