解决3.01版的jquery.form.js中文乱码问题的解决方法


Posted in Javascript onMarch 08, 2012

网上搜了很多方法,可能因为我用的这jquery.form.js是3.01版,也就是今年3月6日才发布的版本(汗。。。就是前天),所以普遍不太管用。至于低版本的是否管用,这个我没有去考证,但大部分还是不负责任的Copy Copy Copy 。还有一些方法是在提交前对所有的值先编码,我觉得这个太麻烦,额外增加了不少的前端代码量,也就没有采取。
好吧,那还是自己来处理吧。首先我们要找到切入点,也就是解决问题的入口。既然我们是要对JS传递的数据进行编码,那么首先肯定要从数据的传递函数开始。我调用的是ajaxSubmit函数,就是它了。打开js文件,找到这个函数,看源码,发现有一行:

var qx, a = this.formToArray(options.semantic);

formToArray的作用是把采集到的表单数据转换成对象数组,然后传递到$.get、$.post 等Ajax函数。我觉得有戏了。不过接下去的代码几百行,为节省时间,还是直入主题吧。我在上面那行设置断点,在Web页面输入中文数据,通过JS一步步调试来理解该源码。程序执行之后,几经跳转,最后在fieldValue这个函数的最后部分,终于找到了:
return $(el).val();

这样,我们只要在这里进行客户端的编码即可:
return escape($(el).val());

然后在服务器端,可以用 Server.UrlDecode() 进行解码,这样乱码就不在出现了,可以正确的接受中文字符了~~~

大家有什么好的方法或者建议也可以提出来。

Javascript 相关文章推荐
用js解决数字不能换行问题
Aug 10 Javascript
JavaScript获取FCK编辑器信息的具体方法
Jul 12 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
Nov 14 Javascript
jQuery实现布局高宽自适应的简单实例
May 28 Javascript
Javascript 普通函数和构造函数的区别
Nov 05 Javascript
深入理解JavaScript中的for循环
Feb 07 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
vue项目打包上传github并制作预览链接(pages)
Apr 19 Javascript
Vue拖拽组件列表实现动态页面配置功能
Jun 17 Javascript
微信小程序如何调用图片接口API并居中显示
Jun 29 Javascript
JavaScript对象原型链原理解析
Jan 22 Javascript
JS实现网站楼层导航效果代码实例
Jun 16 Javascript
Node.js实战 建立简单的Web服务器
Mar 08 #Javascript
使用UglifyJS合并/压缩JavaScript的方法
Mar 07 #Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
Apr 13 #Javascript
node.js 一个简单的页面输出实现代码
Mar 07 #Javascript
服务器端的JavaScript脚本 Node.js 使用入门
Mar 07 #Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
Mar 07 #Javascript
拥抱模块化的JavaScript
Mar 07 #Javascript
You might like
PHP文本数据库的搜索方法
2006/10/09 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
PHP类的特性实例分析
2016/09/28 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
AngularJS中filter的使用实例详解
2017/08/25 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
Angular实现的简单定时器功能示例
2017/12/28 Javascript
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
python处理文本文件并生成指定格式的文件
2014/07/31 Python
python处理大数字的方法
2015/05/27 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
python实现用户答题功能
2018/01/17 Python
Python多线程原理与用法详解
2018/08/20 Python
Python模块常用四种安装方式
2020/10/20 Python
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
大四学年自我鉴定
2013/11/13 职场文书
《藏戏》教学反思
2014/02/11 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
民族学专业求职信
2014/07/28 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
平安家庭事迹材料
2014/12/20 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫