解决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 相关文章推荐
可缩放Reloaded-一个针对可缩放元素的复用组件
Mar 10 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
Feb 06 Javascript
JS增加行复制行删除行的实现代码
Nov 09 Javascript
字段太多jquey快速清空表单内容方法
Aug 21 Javascript
谈一谈js中的执行环境及作用域
Mar 30 Javascript
JS读写CSS样式的方法汇总
Aug 16 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
Oct 27 Javascript
js实现模糊匹配功能
Feb 15 Javascript
微信小程序页面滑动屏幕加载数据效果
Nov 16 Javascript
vue-cli 使用vue-bus来全局控制的实例讲解
Sep 15 Javascript
vue+element模态框中新增模态框和删除功能
Jun 11 Javascript
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
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双引号中访问数组元素报错的解决方法
2018/02/01 PHP
php中错误处理操作实例分析
2019/08/23 PHP
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
2010/06/19 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
[51:26]VP vs VG 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
bat和python批量重命名文件的实现代码
2016/05/19 Python
Python2和Python3.6环境解决共存问题
2018/11/09 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
使用python无账号无限制获取企查查信息的实例代码
2020/04/17 Python
Python二元算术运算常用方法解析
2020/09/15 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
店长岗位的工作内容
2013/11/12 职场文书
《月迹》教学反思
2014/02/19 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
经典而简洁的婚礼主持词
2014/03/13 职场文书
公司总经理岗位职责
2014/03/15 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书