解决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 相关文章推荐
[原创]用javascript实现检测指定目录是否存在的方法
Jan 12 Javascript
JS按位非(~)运算符与~~运算符的理解分析
Jul 31 Javascript
javascript异步编程的4种方法
Feb 19 Javascript
jquery编写日期选择器
Mar 16 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
Aug 25 Javascript
VueJS组件之间通过props交互及验证的方式
Sep 04 Javascript
微信小程序实现图片放大预览功能
Oct 22 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
Jan 11 Javascript
Angular7.2.7路由使用初体验
Mar 01 Javascript
vue制作抓娃娃机的示例代码
Apr 17 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
在JavaScript中查找字符串中最长单词的三种方法(推荐)
Jan 18 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/11/20 PHP
php include和require的区别深入解析
2013/06/17 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
JS 继承实例分析
2008/11/04 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
2016/09/20 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
Python之循环结构
2019/01/15 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
欧舒丹美国官网:L’Occitane美国
2018/02/23 全球购物
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
工程售后服务承诺书
2014/05/21 职场文书
乡镇综治宣传月活动总结
2014/07/02 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
店长岗位职责
2015/02/11 职场文书
质量保证书怎么写
2015/02/27 职场文书
工程催款通知书
2015/04/17 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
小型企业的绩效考核制度模板
2019/11/21 职场文书