jquery autocomplete插件的使用



jquery autocomplete插件的使用最近在做公司软件后台,其中有个要实现的是自动补全功能,感觉jquery的autocomplete很不错,文档很简单,但真正用起来还是出现了很多问题,
1,这个插件要传个后台的参数之前一直不知道,还总以为是那个input中的name,但一直得不到,后来通过firebug调试,发现它提交的url中总会带一个“q”过去,这才发现我后台要接收的参数是“q”,于是通过request.getParameter(“q”);得到参数了。
2,我后台接受参数后是用json传的数据,但好像页面接受不了,前台还要解析下
parse: function(data) {
               var rows = [];
               for(var i=0; i<data.length; i++){
               rows[rows.length] = {
                   data:data[i].userName +”&nbsp;&nbsp;”+data[i].nickName,
                   value:data[i].userName,
                   result:data[i].userName
                   };
               }
               return rows;
          },
3,使用这个插件要将随页面一起加载进来,$(document).ready(function(){});
问题基本就这些,加载相应的包
       <link rel=”stylesheet” type=”text/css” href=”jquery.autocomplete.css”>
       <script type=”text/javascript” src=”jquery-1.5.2.js”></script>
       <script type=”text/javascript” src=”jquery.autocomplete.js”></script>
下面是具体实现:
页面代码:
$(document).ready(function(){
       $(“#username”).autocomplete(“GetStockNameServlet”, {
           minChars: 1,
           max: 40,
           delay: 500,
           scrollHeight: 160,
           width:150,
           scroll:true,
           dataType:’json’,//返回数据类型
           parse: function(data) {
               var rows = [];
               for(var i=0; i<data.length; i++){
               rows[rows.length] = {
                   data:data[i].userName +”&nbsp;&nbsp;”+data[i].nickName,
                   value:data[i].userName,
                   result:data[i].userName
                   };
               }
               return rows;
           },
        formatItem:function(row, i, n) { 
             return “<font color=’#990099′>”+row+”</font>”;    
        } 
   });

<input type=”text” name=”username” id=”username”>

这样其中GetStockNameServlet 请求的url。
后台代码:
String data = request.getParameter(“q”);//接收页面传来的数据。q为jquery的autocomplete默认的参数
       UserInfoService userInfoService=SpringBeanContext.getInstance().getBean(“userInfoService”,UserInfoService.class);
      
       List<UserInfo> userList = userInfoService.searchAllUser(data, (byte)2, 0).getResult();
      
       Gson gson = new Gson();
       out.print(gson.toJson(userList));
这里用到了Gson转json数据
问题解决了,很开心,附上图:
[转载]jquery <wbr>autocomplete插件的使用