更新日期: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;
};
發佈留言