解决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 小贴士一星期合集
Apr 07 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
Apr 07 Javascript
JavaScript的递归之递归与循环示例介绍
Aug 05 Javascript
Javascript中this的用法详解
Sep 22 Javascript
Javascript中的apply()方法浅析
Mar 15 Javascript
jQuery实现页面滚动时动态加载内容的方法
Mar 20 Javascript
AngularJS Phonecat实例讲解
Nov 21 Javascript
jQuery实现淡入淡出的模态框
Feb 09 Javascript
AngularJS表单验证功能分析
May 26 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
Oct 11 Javascript
JS实现可用滑块滑动的缓动图代码
Sep 01 Javascript
js实现选项卡效果
Mar 07 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
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
JavaScript 无符号右移运算符
2009/04/17 Javascript
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
微信小程序(应用号)简单实例应用及实例详解
2016/09/26 Javascript
Vue创建头部组件示例代码详解
2018/10/23 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
在类Unix系统上开始Python3编程入门
2015/08/20 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
Python 中的lambda函数介绍
2018/10/10 Python
django中使用POST方法获取POST数据
2019/08/20 Python
python爬虫实现获取下一页代码
2020/03/13 Python
深入理解Python 多线程
2020/06/16 Python
python 实现aes256加密
2020/11/27 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
2013/01/09 HTML / CSS
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
美国女性卫生用品公司:Thinx
2017/06/30 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
大学生毕业求职简历的自我评价
2013/10/24 职场文书
公务员培训心得体会
2013/12/28 职场文书
党员公开承诺书范文
2014/03/25 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
北京英语导游词
2015/02/12 职场文书
军训决心书范文
2015/09/22 职场文书
MySQL系列之开篇 MySQL关系型数据库基础概念
2021/07/02 MySQL