解决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中令人发指的valueOf方法介绍
Feb 22 Javascript
js 有框架页面跳转(target)三种情况下的应用
Apr 09 Javascript
jQuery制作网页版选项卡
Jul 28 Javascript
总结AngularJS开发者最常犯的十个错误
Aug 31 Javascript
关于验证码在IE中不刷新的快速解决方法
Sep 23 Javascript
JS实现含有中文字符串的友好截取功能分析
Mar 13 Javascript
node.js中cluster的使用教程
Jun 09 Javascript
jquery 一键复制到剪切板的实例
Sep 20 jQuery
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 Javascript
vue自定义指令之面板拖拽的实现
Apr 14 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
Jun 15 Javascript
基于layui轮播图满屏是高度自适应的解决方法
Sep 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
DIY实用性框形天线
2021/03/02 无线电
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
2018/03/05 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
2018/08/30 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
营运督导岗位职责
2015/04/10 职场文书
放假通知格式
2015/04/14 职场文书
员工福利申请报告
2015/05/15 职场文书
环保建议书范文
2015/09/14 职场文书