更新日期:2020-12-21
我們最常用的方法是 $(form).serialize(),這個方式得到的是一個字串(String),例如: id=1&name=john&tel=0912345678
若是要變成陣列(Array),就可以改用 $(form).serializeArray() 這個方法,結果如下:
[ {name: "aa", value: "100"}, {name: "bb", value: "good"}, {name: "cc", value: "123"} ]
但看到這樣子name,value組合,若是要直接運用也是很麻煩,因此若能轉化成物件(Object)也是比較方便的,但可惜的是 jQuery 裡面並沒有這個函數可運用。
不過,我們可以自己延伸 serializeArray 寫一段小程式 serializeObject 來用,程式碼如下:
$.fn.serializeObject = function() { var obj = {}; console.log(this.serializeArray()); $.each( this.serializeArray() , function() { if (obj[this.name] !== undefined) { if (!obj[this.name].push) { obj[this.name] = [obj[this.name]]; } obj[this.name].push(this.value || ''); } else { obj[this.name] = this.value || ''; } }); return obj; };
發佈留言