六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 1920|回复: 1

jquery autocomplete 实现搜索提示功能,中文也没问题 -it论坛

[复制链接]
 楼主| 发表于 2014-1-16 18:07:47 | 显示全部楼层 |阅读模式
jquery autocomplete 实现搜索提示功能,中文也没问题 -it论坛-计算机论坛
1.网上参考了很多的搜索提示代码,最后还是得自己写这个插件首先贴上一张图:

2.感谢  http://www.cnblogs.com/askew/archive/2010/01/18/1650703.html   此作者在提示下写出了这个插件

3.注意jquery 的类库要用  jquery autocomplete 自带的库,我用最新的jquery 1.7 一直会弹出个窗口,并无法显示搜索结果。

4.源码:-it论坛-计算机论坛
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  2. <html>  
  3.   <head>  
  4.     <title></title>  
  5.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  6.     <script src="jquery.js"></script>  
  7.     <script src="jquery.autocomplete.js"></script>  
  8.     <link href="jquery.autocomplete.css" rel="stylesheet" type="text/css">  
  9.     <script>  
  10.     $(document).ready(function(){

  11.              function parseFn(data) {     
  12.                             
  13.                      var rows = [];      
  14.                      for(var i=0; i<data.length; i++){   
  15.                           
  16.                         rows[rows.length] = {      
  17.                             data:data[i],             //下拉框显示数据格式
  18.                             value:data[i].name,      //选定后实际数据格式  
  19.                             result:data[i].name  //选定后输入框显示数据格式
  20.                         };      
  21.                       }      
  22.                      return rows;      
  23.                 }  
  24.               $("#providerjc").autocomplete("search", {
  25.                 minChars: 0,         //激活自动完成的输入字符数
  26.                 width: 150,
  27.                 matchContains: "word",    //只要包含输入字符就会显示提示
  28.                 autoFill: true,        //自动填充输入框
  29.                 dataType: 'json',       //数据格式
  30.                 parse: parseFn,
  31.                 formatItem: function(row, i, max) {   
  32.                          var item="<table id='auto"+i+"' style='width:100%;'> <tr> <td align='left'>"+row.name+"</td><td align='right' style='color:green;'>"+row.num+"</td></tr></table>" ;           
  33.                  return item;
  34.                 }
  35.                 /*  这里我借鉴了一位javaeye 网友的调用方式。但发现formatMatch和formatResult两个方法不被调用。
  36.                 我猜是使用parse 方法的原因。这时需要在调用result 方法,实现填充其他数据
  37.               ,
  38.                 formatMatch: function(row, i, max) {      
  39.                  return row.providerjc;
  40.                 },
  41.                 formatResult: function(row) {
  42.                  return row.providerid;
  43.                 }
  44.               */
  45.                }).result(function(event, data, formatted){   
  46.                   $("#providerid").val(data.name);    //此处当填充文本框后,会将providerid填充到我的input隐藏域中
  47.                });
  48.               })   
  49.     </script>  
  50.    
  51.   </head>  
  52.   <body>  
  53.    <div align="center" class="search_div">  
  54.            
  55.               <table align="center" width="450">
  56.               <tr>
  57.                 <td>票务名称:</td><td><input type="text" name="providerjc" id="providerjc" style="width:230px" title="请输入票务的名称"/></td>  
  58.               </tr>
  59.               </table>   
  60.             
  61.    </div>  
  62.   </body>  
  63. </html>  
复制代码
服务器端代码 servlet : -it论坛-计算机论坛
  1. package com.wcb;

  2. import java.io.IOException;
  3. import java.io.PrintWriter;

  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;

  8. /**
  9. * Servlet implementation class search
  10. */
  11. public class search extends HttpServlet {
  12.         private static final long serialVersionUID = 1L;
  13.       
  14.          protected void processRequest(HttpServletRequest request, HttpServletResponse response)  
  15.                             throws ServletException, IOException {  
  16.                       String q= new String(request.getParameter("q").getBytes("iso8859-1"),"utf-8");
  17.                       System.out.println("====关键字====="+q);
  18.                      
  19.                                 response.setContentType("text/html;charset=UTF-8");  
  20.                                 PrintWriter out = response.getWriter();  
  21.                                 String json="[{ name:'美女',num: '56' },{ name:'机车美女',num:'23' },{ name:'美女和野兽', num:'22' },{ name:'醉酒后的美女', num:'85' }]";
  22.                                 out.println(json);
  23.                                 out.close();  
  24.                                
  25.                             }   
  26.                           
  27.                             // <editor-fold defaultstate="collapsed" desc="HttpServlet 方法。单击左侧的 + 号以编辑代码。">  
  28.                             /**  
  29.                             * Handles the HTTP <code>GET</code> method.
  30.                             * @param request servlet request
  31.                             * @param response servlet response
  32.                             */  
  33.                             protected void doGet(HttpServletRequest request, HttpServletResponse response)  
  34.                             throws ServletException, IOException {  
  35.                                 processRequest(request, response);  
  36.                             }   
  37.                           
  38.                             /**  
  39.                             * Handles the HTTP <code>POST</code> method.
  40.                             * @param request servlet request
  41.                             * @param response servlet response
  42.                             */  
  43.                             protected void doPost(HttpServletRequest request, HttpServletResponse response)  
  44.                             throws ServletException, IOException {  
  45.                                 processRequest(request, response);  
  46.                             }  
  47.                           
  48.                             /**  
  49.                             * Returns a short description of the servlet.
  50.                             */  
  51.                             public String getServletInfo() {  
  52.                                 return "Short description";  
  53.                             }// </editor-fold>  

  54. }
复制代码
本文摘自:http://blog.csdn.net/chuxu000/article/details/6960528

该会员没有填写今日想说内容.

升级  79.33%

0

主题

0

主题

0

主题

举人

Rank: 3Rank: 3

积分
438
发表于 2014-11-25 17:34:40 | 显示全部楼层
强烈感谢楼主












批发高品质15V6A桌面式电源适配器
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表