国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > web前端 > jquery > 解决jQuery对表单serialize后出现的乱码问题

解决jQuery对表单serialize后出现的乱码问题

来源:程序员人生   发布时间:2014-05-28 23:45:15 阅读次数:2763次

代码出自于jQuery formValidator表单验证插件(4.0.2新增),适用于所有的平台。

通过看jQuery源码可以知道,serialize方法是通过encodeURIComponent编码的,所以解决乱码的最笨方法:

1、重新分解序列化后的值

2、把分解的值重新decodeURIComponent回来

3、再重新用escape编码

4、重新拼接

function serialize(objs)
{
var parmString = $(objs).serialize();
var parmArray = parmString.split("&");
var parmStringNew="";
$.each(parmArray,function(index,data){
var li_pos = data.indexOf("=");
if(li_pos >0){
var name = data.substring(0,li_pos);
var value = escape(decodeURIComponent(data.substr(li_pos+1)));
var parm = name+"="+value;
parmStringNew = parmStringNew=="" ? parm : parmStringNew + '&' + parm;
}
});
return parmStringNew;
}
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
为码而活
积分:4237
15粉丝
7关注
栏目热点
关闭
程序员人生