平台:Vs2008

jQuery 1.4.2

jquery.ui.autocomplete.js 1.8.5

方法概述:在ajax传输数据时把jquery.ui.autocomplete.js 中的传输值改成encodeURI() 形式,然后在后台处理代码里再用System.Web.HttpUtility.UrlDecode()方法把传输的
值进行解码。

先上图片,无图无真相么!哈哈!

具体请看代码吧:
页面代码:

  <link rel="stylesheet" href="JqueryUi/themes/base/jquery.ui.all.css" />  //这个css文件要先放到最前面,否则可能报未定义错误<script type="text/javascript" src="JqueryUi/jquery-1.4.2.min.js"></script><script type="text/javascript" src="JqueryUi/ui/jquery.ui.core.js"></script><script type="text/javascript" src="JqueryUi/ui/jquery.ui.widget.js"></script><script type="text/javascript" src="JqueryUi/ui/jquery.ui.position.js"></script><script type="text/javascript" src="JqueryUi/ui/jquery.ui.autocomplete.js"></script<script language="javascript" type="text/javascript">$(function() {$("#search").autocomplete({source: function(request, response) {$.ajax({url: "UserControl/GetService.ashx",dataType: "json",data: request,success: function(data) {response(data);},});}});});<div><input id="search" type="text" /></div>

后台处理类:

<%@ WebHandler Language="C#" Class="GetService" %>using System;
using System.Web;public class GetService : IHttpHandler
{public void ProcessRequest(HttpContext context){if (context.Request.QueryString["term"] != null && context.Request.QueryString["term"] != ""){context.Response.Clear();//context.Response.Charset = "gb2312";context.Response.Buffer = true;//context.Response.ContentEncoding = System.Text.Encoding.UTF8;context.Response.ContentType = "text/plain";string ss = System.Web.HttpUtility.UrlDecode(context.Request.QueryString["term"]);//GetQueryString(context.Request.QueryString["term"],false)context.Response.Write(GetLikeUserName(ss));context.Response.Flush();context.Response.Close();context.Response.End();}}/// <summary>/// 拼接json/// </summary>/// <param name="key">关键词</param>/// <returns></returns>private String GetLikeUserName(string key){//System.Text.Encoding.Convert(if (key == null) return "[\"\"]";
    // 这里就是获取数据源,大家自己写了System.Data.DataSet ds = Angel.Data.DatabaseHelper.ExecuteDataset("Select * from Services where Service like '%" + key + "%'", "1");int length = ds.Tables[0].Rows.Count;if (length == 0) return "[\"\"]";string[] listWord;if (length > 10){listWord = new string[10];}else{listWord = new string[length];}for (int i = 0; i < length; i++){if (i <= 9){listWord[i] = ds.Tables[0].Rows[i]["Service"].ToString();}else break;}//搜索,返回10个关键词System.Text.StringBuilder sbstr = new System.Text.StringBuilder("[");int ct = listWord.Length;for (int i = 0; i < ct; i++){sbstr.Append("\"" + listWord[i] + "\"");if (i == ct - 1)sbstr.Append("]");elsesbstr.Append(",");}return sbstr.ToString();}public bool IsReusable{get{return false;}}}

下面是最重要的代码了!我们知道像上面那样当GetService.ashx这个类收到 QueryString 时显示的肯定是乱码!

好了打开你引用的 jquery.ui.autocomplete.js 我们来修改以下内容

 search: function(value, event) {value = value != null ? value : this.element.val();value = encodeURI(value);  // 请注意这行代码,是后加上去的// always save the actual value, not the one passed as an argumentthis.term = this.element.val();if (value.length < this.options.minLength) {return this.close(event);}clearTimeout(this.closing);if (this._trigger("search") === false) {return;}return this._search(value);},

查找到 search 这个函数,然后按上面的修改完保存退出!好大功告成!

好了,基本先到这!有什么问题以后我会补充的!今天过的真纠结啊。。。

祝大家开心!

-------------------------------------------------------------------------------------------------------------------

转载于:https://www.cnblogs.com/Royal_WH/archive/2010/11/01/1863600.html

jQuery UI Autocomplete 使用 ajax 方法传输Json数据出现乱码问题的解决相关推荐

  1. jQuery通过ajax方法获取json数据不执行success的原因及解决方法

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  2. jquery通过ajax方法获取json数据不执行success

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  3. jquery ajax 不执行success,jQuery通过ajax方法获取json数据不执行success的原因及解决方法...

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  4. ajax传输json数据格式乱码_解决Ajax加载JSon数据中文乱码问题

    一.问题描述 使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经对中文乱码处理,为什么还会出现呢? 此处为的异步请求的配置: Java代码 async: { ...

  5. jQuery UI Autocomplete是jQuery UI的自动完成组件

    jQuery UI Autocomplete是jQuery UI的自动完成组件,是我用过的最强大.最灵活的Autocomplete,它支持本地的Array/JSON数组.通过ajax请求的Array/ ...

  6. JQuery UI AutoComplete 与 Strtus2 结合使用

    这篇文章中完成一个搜索城市的示例程序,输入城市名称或者拼音首字母,返回城市的智能提示.使用了JQuery UI AutoComplete插件. 首先,看一下效果图,了解程序完成后是一个什么样子. 汉字 ...

  7. jQuery使用getJSON方法获取json数据完整示例

    本文实例讲述了jQuery使用getJSON方法获取json数据.分享给大家供大家参考,具体如下: demo.js: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

  8. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQuer ...

  9. axios ajax和flask传输json数据

    axios ajax和flask传输json数据 视频 https://www.bilibili.com/video/BV1WC4y1b78y?p=23 https://www.bilibili.co ...

  10. jquery的ajax,请求JSON数据。

    jquery的ajax,请求JSON数据. 第一个页面:1.htm <!DOCTYPE html> <html> <head> <title></ ...

最新文章

  1. weblogic公布的项目用途myeclipse正常启动,点击startWeblogic.cmd报错解决方案
  2. 黄聪:PHP生成折线图、饼图、表格、图表插件控件pChart
  3. 中石油训练赛 - Swapity Swap(矩阵快速幂)
  4. extern “C”总结
  5. access inner join 数据类型不匹配_用Access开发生产管理系统
  6. RabbitMQ + 镜像队列 + HAProxy 实现负载均衡的集群
  7. 用FileMapping跨进程共享数据
  8. arm-linux gcc 指针 取值,GCC存储的字符串常量以及这些指针映射的位置在哪里?
  9. 数据库修改服务器ip地址吗,服务器数据库与改ip地址吗
  10. SQLite的sqlite3_column_blob函数
  11. Gulp解决发布线上文件(CSS和JS)缓存问题
  12. oc 画一个圆弧_弯管半圆弧滑块抽芯结构拆解,3个核心要点
  13. [书目20080630]人一生要养成的50个习惯
  14. xml与实体互相转换
  15. atheros ar9285 wireless network Adaper设备的驱动器正防止机器进入待机状态
  16. 17-基于51单片机的银行排队叫号系统设计
  17. 未能从dhcp服务器获得ip地址,当出现无法从DHCP服务器中获得地址的常见处理步骤...
  18. 1万字精讲,这你还学不废?Python爬取腾讯视频《斛珠夫人》弹幕,并转换成词云(单线程)——爬虫实例2
  19. 阿里二面:RocketMQ 消费失败了,怎么处理?
  20. java获取当前时间,时间戳,时间戳和时间相互转换

热门文章

  1. 使用七牛实现静态页面的上传
  2. odoo 中实现多列搜索
  3. linux性能监测工具
  4. Grup加密(使其不能强制更改密码)
  5. 看到大家在讨论阿拉伯数字-》汉字数字的转换,拿出我去年写的C版本
  6. Git提交代码相关命令
  7. java 求集合真子集_干货 | 集合与函数概念知识点总结
  8. oracle 关系 表 视图_在Oracle数据库中,表和视图的区别与联系
  9. 如何在游标里控制条件_如何在冰冻条件下保护控制球阀?
  10. axios的this指向_vue使用axios时this指向哪里