今天想做个自动完成的功能,类似于google的,网上也找了资料,照着http://www.javaeye.com/topic/275871 的方法配了个,但是出不来效果,在文本框输入的时候,啥效果都没,debug也没反应,我想肯定是我的jquery语法的问题。
简单的说,我想要个查询姓名的自动完成功能,person对象有id,name等属性,我想要查的是name属性,
例如:当在文本框输入“李”,自动完成效果就出来“李四”,“李武”等名字。  
我用的是struts2,不知道我的问题描述清楚了没。。麻烦各位大哥大姐,小弟不才,路过的给点建议

解决方案 »

  1.   

    没用过Jquery的autocomplete组件。
    自动完成还是自己实现的好,貌似它也没省多少工作量,
    为什么不直接使用AJAX获取数据再展现呢。
      

  2.   

    jquery中有一个contains的方法类似模糊查询,楼主可以试试如下<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <title></title>
    <link href="css/style.css" rel="stylesheet" type="text/css" />
    <!--   引入jQuery -->
    <script src="../scripts/jquery-1.3.1.js" type="text/javascript"></script>
    <script type="text/javascript">
      $(function(){
           $("#filterName").keyup(function(){
          $("table tbody tr")
    .hide()
    .filter(":contains('"+( $(this).val() )+"')")
    .show();
       }).keyup();
      })
    </script>
    </head>
    <body>
    <div>
    <br/>
    筛选:
    <input id="filterName" />
    <br/></div><table>
    <thead>
    <tr><th>姓名</th><th>性别</th><th>暂住地</th></tr>
    </thead>
    <tbody>
    <tr><td>张山</td><td>男</td><td>浙江宁波</td></tr>
    <tr><td>李四</td><td>女</td><td>浙江杭州</td></tr>
    <tr><td>王五</td><td>男</td><td>湖南长沙</td></tr>
    <tr><td>找六</td><td>男</td><td>浙江温州</td></tr>
    <tr><td>Rain</td><td>男</td><td>浙江杭州</td></tr>
    <tr><td>MAXMAN</td><td>女</td><td>浙江杭州</td></tr>
    <tr><td>王六</td><td>男</td><td>浙江杭州</td></tr>
    <tr><td>李字</td><td>女</td><td>浙江杭州</td></tr>
    <tr><td>李四</td><td>男</td><td>湖南长沙</td></tr>
    </tbody>
    </table></body>
    </html>
      

  3.   

    从后面返回Json数据就OK了,那匹配,这个插件已经做好了的,主要是数据返回,
    你要设置解析的字段是Name而不是ID列。
      

  4.   

    先谢过了 各位
    to lieri111 :你的方法很好用,但是只能筛选本页面,如果一分页,就失去作用了,
    to suiye007 :恩 后台数据我都有了,我就是不知道 怎么封装成json,疑惑
      

  5.   

    你们 有相关的例子吗 json 我也是刚用 想找个师傅教 当然 我晚上也有自学的 只是遇到问题 要找半天 实在没效率 影响工作啊
      

  6.   


    我刚始做的时候,用的是PHP,后来改成了.Net的啦,不过, Java不会,不然,做一个给你看看!
      

  7.   

    呵呵 我刚才json数据格式转出来了 原因是jar包的问题。json依赖包没导啊
    try {
    PrintWriter out = getResponse().getWriter();
    JSONArray json = JSONArray.fromObject(names);
    out.print(json);
                    out.flush();
                    out.close();
                    return null;
    } catch (Exception e) {
    e.printStackTrace();
    }
    return null;
    但是 前台的jquery 要怎么拿到 这个流呢? 然后呈现
      

  8.   

    json 有2个依赖包 ezmorph.jar morph.jar 而且如果数据为空 也会出现转不了的问题