前面我们曾介绍过使用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中文乱码完美解决方案 在处理Web应用中,尤其是涉及到多语言环境时,中文乱码问题时常困扰着开发者。本文将深入探讨jQuery在处理中文数据时遇到的乱码问题,并提供一系列有效的解决方案。 #### 一、理解...
本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...
### jQuery + ASP AJAX 中文乱码问题解决方案 在开发基于jQuery和ASP的Web应用程序时,中文乱码问题可能成为困扰开发者的一大难题。特别是在使用Ajax进行前后端数据交互时,中文字符可能会出现乱码现象,影响用户...
简单整理的乱码处理方案,jquery的ajax解决UTF-8以及GBK的问题
### GBK编码下jQuery_Ajax中文乱码解决方案 #### 背景介绍 在Web开发过程中,使用Ajax技术与服务器端交互数据时经常会遇到字符集编码的问题,尤其是在使用GBK编码的环境中,通过jQuery发起的Ajax请求往往会导致...
Jquery serialize() 中文乱码及解决方法 Jquery serialize() 方法在处理中文数据时,经常会出现乱码问题。这种问题的原因是 serialize() 方法自动调用了 encodeURIComponent 方法将数据编码了,从而导致中文乱码。...
JQuery的跨域解决方案主要依赖于JSONP(JSON with Padding)技术。JSONP是一种绕过同源策略的方式,它利用HTML中的`<script>`标签没有同源策略限制的特点。当jQuery使用`dataType: 'jsonp'`时,它实际上是在做以下几...
在处理中文乱码问题时,Gson提供了一种优雅的解决方案。例如,以下代码展示了如何使用Gson将包含中文的Java对象转换为JSON字符串,以及如何从JSON字符串反序列化回对象: ```java import com.google.gson.Gson; ...
**jQuery自动补全插件详解**...结合静态前台示例、中文乱码解决方案以及各种配置选项,开发者可以轻松地为项目添加这一实用特性。在实际应用中,还需要考虑性能优化、用户体验提升等多方面因素,以确保最佳的使用效果。
### json 中文乱码解决方案 在处理JSON数据时,经常会出现中文乱码的问题,尤其是在不同编码格式间进行转换时更为常见。本文将详细介绍如何解决JSON中的中文乱码问题,并提供几种简单实用的方法来帮助开发者避免这...
为了解决这个问题,"jquery表头固定、列固定完美解决方案"应运而生。这个方案结合了jQuery库和自定义的JavaScript插件,旨在确保用户在滚动页面时,表头和选定的列始终可见。 jQuery是一个轻量级的JavaScript库,它...
本文将深入探讨`tableExport`导出PDF时中文乱码的解决方案。 首先,我们要理解乱码的根源。中文字符在计算机中是以特定的编码方式存储的,如UTF-8。如果在导出过程中编码和解码不匹配,就会出现乱码。`tableExport`...
以上就是解决在使用jQuery获取URL参数时出现中文乱码问题的两种方法,以及相关的编码和解码处理方式。需要注意的是,乱码问题的出现主要是由于编码和解码不一致导致的,所以在前后端处理URL参数时,一定要注意正确地...
总结来说,解决JQuery AJAX提交中文乱码问题的关键在于确保客户端和服务器端字符编码的一致性。可以通过在AJAX请求中显式地设置字符集为UTF-8来解决,从而让服务器端能够正确地解码请求中的中文字符。这不仅适用于GB...
本文将深入探讨如何使用"escape"函数以及相关的编码策略来解决AJAX和JS传中文乱码的问题。 首先,我们需要理解AJAX(异步JavaScript和XML)的工作原理。AJAX允许网页在不重新加载整个页面的情况下与服务器交换数据...
本教程将详细解释如何解决jspdf中文乱码的问题,帮助开发者顺利导出含有中文内容的PDF。 首先,我们需要理解jspdf的基本工作原理。jspdf是一个JavaScript库,它允许在浏览器端生成PDF文件。默认情况下,jspdf使用的...
本资源更正了源码的编码方式,从根本上解决了中文(包括CJK)乱码的问题。要知道乱码原因,及不用资源分下载,请查看: http://www.bq69.com/browse-scripting/jquery-uploadify-messy-code-button.html
解决JQuery AJAX中文乱码问题的步骤如下: 1. **设置请求编码**:在发送AJAX请求时,确保请求头中的`Content-Type`设置为`application/x-www-form-urlencoded;charset=UTF-8`。对于JQuery,你可以这样做: ```...
### jQuery中文乱码的多种解决方法 #### 一、引言 在Web开发过程中,中文乱码是一个常见的问题,尤其是在使用jQuery进行异步请求时。本文将详细介绍如何解决使用jQuery时遇到的中文乱码问题,并提供多种解决方案。 ...
通过上述步骤,你应该能够解决使用jQuery Uploadify时`scriptData`中的中文乱码问题。在实际应用中,可能需要根据具体环境和服务器端语言进行微调,确保整个流程中的字符编码一致。如果仍然遇到问题,检查浏览器的...