解決jQuery對表單serialize后出現(xiàn)的亂碼問題
來源:程序員人生 發(fā)布時間:2014-05-28 23:45:15 閱讀次數(shù):3004次
代碼出自于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;
}