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