惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
爱范儿
爱范儿
罗磊的独立博客
美团技术团队
Jina AI
Jina AI
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
有赞技术团队
有赞技术团队
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
IT之家
IT之家
雷峰网
雷峰网
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
月光博客
月光博客
人人都是产品经理
人人都是产品经理
博客园 - 三生石上(FineUI控件)

博客园 - Robin

JQuery AJAX提交中文出现乱码的解决方案 使用JQuery实现Web弹出编辑框 SQL Server 2005中显示SQL Server 2000数据库关系图 以下文件中的行尾不一致,要将行尾标准化吗?+乱码 Petshop4.0安装问题 SQL Server 2005安装问题(不断更新) 让小红点Trackpoint在Office 2007和IE 7中滚动起来 无法访问XP机器的问题解决办法 office 2007中使用Mathtype的方法 微软的正版验证补丁破解 StartupPath与GetCurrentDirectory的区别 [翻译]运用文件解析器在任意文件中使用虚拟应用路径(~) [转载]补丁安装过程中常见问题 [转]Asp.Net 学习资源列表 [翻译]SQL Server 该做和不该做的 ASP.NET MasterPage 中图片路径的解决办法 [译]Netties使用说明 [转载]开源运动:为谁而战? Linux学习(1)
[原创]JQuery的Validation插件中Remote验证的中文问题 - Robi...
Robin · 2010-07-25 · via 博客园 - Robin

前段时间,再次出现AJAX中文编码问题,导致会员名重复检测失败,不过这次出现问题的是Validation插件的remote验证。根据上次的经验,我将

1.contentType: "application/x-www-form-urlencoded; charset=utf-8",

加入到ajax请求的参数中,结果这次居然不起作用了。

多次观察Fiddler结果,发现无效后,只好打开JQuery.Validation.js寻求答案了。

在remote的代码中,我发现:

01....

02.var data = {};

03.data[element.name] = value;

04.$.ajax($.extend(true, {

05.url: param,

06.mode: "abort",

07.port: "validate" + element.name,

08.dataType: "json",

09.data: data,

10....

原来插件自己定义了提交的数据,直接将要验证的数据以json格式传给服务器了。难怪针对form的编码定义无效。马上将value进行强制的编码encodeURIComponent(value),果然就好了!

后记:

这种方法在服务器代码处理的时候,必须显式地解码数据,通用性很差。于是,之后还是回到起点来研究更好的方法。

为了防止Validation插件对输入数据的处理,我试着采用自己的Option来覆盖Validation的Option定义:

1.remote: {

2.url: "ajax.aspx?a=xxx",

3.type: "post",

4.dataType: "json",

5.contentType: "application/x-www-form-urlencoded; charset=utf-8",

6.data: { txt1: function() { return $("#txt1").val(); } }

7.}

然后在服务器端代码中,取得Form数据中的对应数据,这样就避免了对Validation的修改,同时也满足了我的要求。

 转载请保留原文链接: http://www.luyuliang.com/post/chinese-issue-in-jquery-validation-plugin.aspx