前面我们曾介绍过使用jQuery技巧来提高代码质量,因为jQuery非常容易上手并使用简单。重写表单验证是程序员们经常做的事情,使用jQuery我们有五种方法可以选择,同时也能够解决乱码的问题。
首先,对编码知识进行简要的说明,请务必理解后再看下面的代码。发送中文字符请求时,如果使用get方式,运行正常;而使用post方法则会出现乱码。这是由于异步对象XMLHttpRequest在处理返回的responseText的时候,是按UTF-8编码进行解码的。
如果你原来的网页编码是gb2312的话,当然会发生编码的冲突了;如果你原来的网页编码是utf-8,那么就不会出现中文乱码的问题了。
出现了中文乱码该怎么办呢?通常的解决办法是用escape()对发送的数据进行编码,然后在返回的responseText上再用unescape()进行解码。然而在JavaScript编程中通常不推荐使用escape()和unescape(),而推荐使用encodeURI()和decodeURI()。请看下面的“表单验证实例”,或许对你学习编码知识有一定的帮助。
第一、jQuery的load(url,[data],[callback])方法
语法说明:url为异步请求的地址,data用来向服务器传送请求数据,为可选参数。一旦data参数启用,整个请求过程将以post的方式进行,否则默认为get方式。如果希望在get方式下也传递数据,可以在url地址后面用类似“dataname1=data1&dataName2=data2”的方法。
callback为Ajax加载成功后运行的回调函数。另外使用load()方法返回的数据,不再需要考虑是文本还是XML,jQuery都会自动进行处理。好了,下面马上使用load()方法实现“自动表单验证”实例。首先是,html框架,5个例子都是一样的,如下:
- <form>
-
用户昵称:<input type="text" onblur="startCheck(this)" name="User" id="User"><span id="UserResult"></span><br />
-
输入密码:<input type="password" name="passwd1"><br />
-
确认密码:</td><td><input type="password" name="passwd2"><br />
-
<input type="submit" value="注册" class="button">
-
<input type="reset" value="重置" class="button">
-
</form>
必要说明:
1、onblur="startCheck(this)" 这是JavaScript代码(简称js) ,意思是text文本框失去焦点时触发自定义函数startCheck(),this是指代text文本框的值。
2、<span id="UserResult"></span>用来存放异步对象返回的结果。
- jQuery代码如下:
-
-
<script language="javascript" src="jquery.min.js"></script>
-
<script language="javascript">
- function startCheck(oInput){
- //首先判断是否有输入,没有输入直接返回,并提示
- if(!oInput.value){
- oInput.focus(); //聚焦到用户名的输入框
-
document.getElementById("UserResult").innerHTML = "User cannot be empty.";
- return;
- }
-
oInput=$.trim(oInput.value); //使用jQuery的$.trim()方法过滤左右空格
-
var sUrl = "action.asp?user=" + oInput;
-
sUrl=encodeURI(sUrl); //使用encodeURI()编码,解决中文乱码问题
- $("#UserResult").load(sUrl,function(data){
- $("#UserResult").html(decodeURI(data)); //使用decodeURI()解码
- }
- );
- }
-
</script>
必要说明:
1、使用jQuery时,都必须加载jquery.min.js文件,可以到http://jquery.com/官网下载最新的版本。
2、判断是否有输入时,用的全是JavaScript语法。
3、对传递给“处理页”的参数进行encodeURI编码,以解决中文乱码问题。
4、load()中的function函数是为了对返回结果进行decodeURI解码,以解决中文乱码问题。
5、对$.trim()、$("#UserResult")、html等jQuery语法不理解的,可以参考jQuery中文手册。本站提供下载。
- action.asp处理页代码如下:
-
-
<%
- if(Request("user")="eko") then
- Response.Write "Sorry, " & Request("user") & " already exists."
- else
- Response.Write Request("user")&" is ok."
- end if
-
%>
必要说明:
1、action.asp处理页的编码是GB2312,如果把"Sorry..already exists..is ik"等英文改为中文,请看下面的说明。
2、使用post方法会出现乱码,这是由于异步对象XMLHttpRequest在处理返回的responseText的时候,是按UTF-8编码进行解码的。
3、所以post方式的话,必须把action.asp页另存为时,第三项的编码由 ANST 改为 UTF-8 (请务必记
JQuery Ajax提交出现中文乱码的解决办法2
关键词: JQuery 责任编辑: LSY 创建日期: 2009-10-16 12:31:13
以前使用Jquery的时候一直没有发现,用Ajax提交的时候会出现乱码,我猜测可能是因为编码的原因可能存在以下几点原因: 1.HTML的编码不统一:如页面用的GB2312,好像JQuery对它支持不太好。以前我一直都是用UTF-8的,一直都没有发现; 2.文件的编码,这个不好在表面上看到,简体中文版的操作系统存的文本格式的文件默认是 GB2312,建议把文件换成UTF-8格式的最简单的
以前使用Jquery的时候一直没有发现,用Ajax提交的时候会出现乱码,我猜测可能是因为编码的原因
可能存在以下几点原因:
1.HTML的编码不统一:如页面用的GB2312,好像JQuery对它支持不太好。以前我一直都是用UTF-8的,一直都没有发现;
2.文件的编码,这个不好在表面上看到,简体中文版的操作系统存的文本格式的文件默认是 GB2312,建议把文件换成UTF-8格式的
最简单的解决办法,把提交的中文文本用 JS的 escape 处理一下,就不会现出现乱码了。
如:
//保存数据
$.ajax({
url:"/guide/savecomments.aspx" ,
type:"POST" ,
dataType:"json" ,
data:"Action=SaveComment&CommNickName=" +escape(CommNickName.val()) + "&CommContent=" +escape(CommContent.val()) + "&GuideID=" + GuideID.val() + "&ScoreLogType=<%=ScoreLogType %>",
success:function(results){
alert(results.message);
住!!)。
用jquery提交AJAX的中文乱码问题
2009年11月01日 16时30分
太扯了,不明白Jquery为什么不把这点小问题给封装一下
偶js小菜一个,最近用jquery做东西,感觉挺好玩的哈,把问题搞的很简单
可用juqery提交AJAX请求的时候却出现来中文乱码,本来在firefox下开发的,米有问题,到来IE下一测,完全不是那么回事。
原因上Jquery中AJAX提交请求对中文的URI编码不一样,再FF下是utf-8,ie下却不是,具体上什么不清楚。
解决的办法上用js的编码函数encodeURIComponent(string)处理一下,把中文"王晓明"编码成"%E7%8E%8B%E6%99%93%E6%98%8E",就OK了。
顺便说一下,我的tomcat下的URIEncoding=UTF-8
相关推荐
jQuery中文乱码完美解决方案解决方案
GBK编码下jQuery_Ajax中文乱码解决方案
jquery+asp ajax 中文乱码问题解决文档
简单整理的乱码处理方案,jquery的ajax解决UTF-8以及GBK的问题
Jquery serialize() 中文乱码及解决方法 的文档形式 Jquery
本Demo主要针对jquery的$.getJSON操作,返回json, 针对传参出现的中文乱码, json里出现中文乱码。
JQuery跨域访问解决方案 JQuery
简单易懂的示例,包括静态前台示例,中文乱码解决JS, 常用属性配置中文说明
jquery table 表头固定 列固定 完美解决方案
解决jspdf导出pdf中文乱码,详细说明地址:https://blog.csdn.net/jinggaoniao/article/details/108751020
基于jQuery的表单验证解决方案.zip
JQuery AJAX 中文乱码问题解决,需要的朋友可以参考一下
jquery uploadify scriptData 中文乱码 我自己搜索的一些关于乱码处理的资料
这个是解决AJAX和JS传中文乱码的最终解决方案 如果你在用AJAX和JS过程中遇到这个问题就可以这样解决 不管你是什么GBK 或者UTF-8或者其他的编码,放上这个代码都是可以解决的
JQuery是一个非常优秀的框架,在特定场合下使用JQuery提交数据,相当的方便快捷。 但是,在处理一个GB2312编码的网站AJAX提交时,中文数据却成了乱码。
使用Jquery_EasyUi常见问题解决方案
本资源更正了源码的编码方式,从根本上解决了中文(包括CJK)乱码的问题。要知道乱码原因,及不用资源分下载,请查看: http://www.bq69.com/browse-scripting/jquery-uploadify-messy-code-button.html
jquery中文乱码的多种解决方法,需要的朋友可以参考一下
目前在做一个项目要求导出pdf文件,但发现导出中文乱码,研究了好久终于解决,现整理好分享给大家