form表單有一個serialize()方法。能夠序列化表單的值,可是jquery提供的這種方法會把數據序列化為類似以下的形式:
a=1&b=2&c=3&d=4
jquery並沒有提供將表單數據序列化為json的方法。所以須要我們自己封裝一下。以下給出代碼和測試例子,先寫一個js文件:
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded; charset=utf-8"
});
var DataDeal = {
//將從form中通過$('#form').serialize()獲取的值轉成json
formToJson: function (data) {
data=data.replace(/&/g,"\",\"");
data=data.replace(/=/g,"\":\"");
data="{\""+data+"\"}";
return data;
},
};
用法:先在頁面導入上面的js文件,然后
var data=$('#addf').serialize();//獲取值
data= decodeURIComponent(data,true);//防止中文亂碼
var json=DataDeal.formToJson(data);//轉化為json
