欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

学习AJAX--用JQuery实现文本框自动完成

shiping1 的头像

jQuery插件之Ajax自动完成

2012-04-27 10:00 小马在唱歌 小马在唱歌的博客 字号:T | T
一键收藏,随时查看,分享好友!

本文要介绍的这个JQuery 插件名叫Ajax Autocomplete 顾名思义,ajax 也就是用ajax的方式获取搜索提示信息然后返回呈现出来

AD:【51CTO技术沙龙】移动时代数据挖掘和行为分析—让用户数据更精彩!

 

平时用百度,谷歌搜索的时候,会有一个下,拉列表进行提示,这是一个非常好的功能。本文要介绍的这个JQuery 插件名叫Ajax Autocomplete 顾名思义,ajax 也就是用ajax的方式获取搜索提示信息然后返回呈现出来,上效果图

闲话不多说直接上代码

本文使用到的文件有:

1,点击 Ajax Autocomplete for jQuery, version 1.1.3  下载

引用文件:


  1. <script type="text/javascript" src="jquery-1.3.2.min.js"></script>  
  2. <script type="text/javascript" src="jquery.autocomplete.js"></script>  

使用方法:

定义一个id 为query的文本框


  1. <input type="text" name="query" id="query" /> 

 


  1. <script type="text/javascript">  
  2.         $(function() {  
  3.             var onAutocompleteSelect =function(value, data) {    
  4.  //根据返回结果自定义一些操作  
  5.             };   
  6.             var options = {  
  7.                 serviceUrl: 'QueryServices.ashx',//获取数据的后台页面  
  8.                 width: 700,//提示框的宽度  
  9.                 delimiter: /(,|;)\s*/,//分隔符  
  10.                 onSelect: onAutocompleteSelect,//选中之后的回调函数  
  11.                 deferRequestBy: 0, //单位微秒  
  12.                 params: { country: 'Yes' },//参数  
  13.                 noCache: false //是否启用缓存 默认是开启缓存的  
  14.             };  
  15.  
  16.             a1 = $('#easyQuery').autocomplete(options);  
  17.                           
  18.         });  
  19. }  
  20.     </script>  
  21.  

下面就是后台获取数据的代码了

刚才提到 'QueryServices.ashx'  这个文件 这就是后台处理数据的文件

因为这个插件要求返回结果必须是一个JSON对象 这个JSON对象的格式是这样的


  1. {  
  2.  query:'Li', //前台输入的查询内容  
  3.  suggestions:['Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania'],//这里就是下拉框里显示的数据了 和下面的data是对应的 属于一键一值  
  4.  data:['LR','LY','LI','LT']//这里和suggestions对应 作为suggestions的键  

suggestions 对应前台 onAutocompleteSelect =function(value, data) 回调函数的 value 而

data 顾名思义 对应data

插件介绍到此为止  数据传送格式已和大家 列出大家可根据自己所用语言自行序列化。

原文链接:http://www.cnblogs.com/maxiao/archive/2012/04/25/2470712.html


来自 
http://developer.51cto.com/art/201204/332426.htm


学习AJAX--用JQuery实现文本框自动完成
标签: jqueryautocompletefunctionwebservicexhtml数据库
 1240人阅读 评论(0) 收藏 举报
 分类:

      文本框自动完成功能主要实现当在文本框中输入一定长度的字符后,能自动从服务器中获取与之匹配的所有数据,列表供用户选择。
      本事例采用sql数据库,当用户在文本框中输入字符时,自动从数据库中取出与之匹配的其它单词,供用户选择,使用JQery实现。

      代码如下:

客户端:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml" >  
  3. <head>  
  4.     <title></title>  
  5.   
  6.     <script src="js/jquery-1.7.js" type="text/javascript"></script>  
  7.     <script type="text/javascript">  
  8.         $(function() {  
  9.   
  10.             $("#Text1").keyup(function() {  
  11.                 $("#autodiv").attr("style", "display:block");  
  12.                 $.post("autocomplete.ashx", { "key": $(this).val() }, function(data, status) {  
  13.                     if (status = "success") {  
  14.                         var items = $.parseJSON(data);  
  15.                         $("#autoList").empty();  
  16.                         for (var k = 0; k < items.length; k++) {  
  17.                             var li = $("<li>" + items[k] + "</li>");  
  18.                             $("#autoList").append(li);  
  19.                         }  
  20.                         $("#autoList li").click(function(e) {  
  21.                             $("#Text1").val($(this).text());  
  22.                             $("#autodiv").attr("style", "display:none");  
  23.                         });  
  24.                     }  
  25.                 });  
  26.             });  
  27.         });  
  28.     </script>  
  29. </head>  
  30. <body>  
  31. <input id="Text1" type="text" />  
  32. <div id="autodiv">  
  33. <ul id="autoList">  
  34. </ul>  
  35. </div>  
  36. </body>  
  37. </html>  


处理程序:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.Services;  
  6. using System.Web.Script.Serialization;  
  7. using AJAXTest.DataSetTopicTableAdapters;  
  8.   
  9. namespace AJAXTest  
  10. {  
  11.     /// <summary>  
  12.     /// $codebehindclassname$ 的摘要说明  
  13.     /// </summary>  
  14.     [WebService(Namespace = "http://tempuri.org/")]  
  15.     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
  16.     public class autocomplete : IHttpHandler  
  17.     {  
  18.   
  19.         public void ProcessRequest(HttpContext context)  
  20.         {  
  21.             context.Response.ContentType = "text/plain";  
  22.             string key = context.Request["key"];  
  23.             List<string> list = new List<string>();  
  24.             var adapter = new autocompleteTableAdapter();  
  25.             var t = adapter.GetDataBy(key);  
  26.             foreach (var row in t)  
  27.             {  
  28.                 list.Add(row.Description.Trim());  
  29.             }  
  30.             JavaScriptSerializer jss = new JavaScriptSerializer();  
  31.             context.Response.Write(jss.Serialize(list));  
  32.         }  
  33.   
  34.         public bool IsReusable  
  35.         {  
  36.             get  
  37.             {  
  38.                 return false;  
  39.             }  
  40.         }  
  41.     }  
  42. }  

来自 http://blog.csdn.net/dreamboy0908/article/details/7165012

普通分类: