Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3234618
  • 博文数量: 530
  • 博客积分: 13360
  • 博客等级: 上将
  • 技术积分: 5473
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-13 13:32
文章分类

全部博文(530)

文章存档

2017年(1)

2015年(2)

2013年(24)

2012年(20)

2011年(97)

2010年(240)

2009年(117)

2008年(12)

2007年(8)

2006年(9)

分类: Java

2017-02-12 20:51:23

网卡有很多例子并不能实现自动补全功能,这里记录关键代码

点击(此处)折叠或打开

  1. <!-- 代码补全javascript -->
  2. <script type="text/javascript">
  3. $(document).ready(function ($) {
  4. $.fn.typeahead.Constructor.prototype.blur = function () {
  5.    var that = this;
  6.    setTimeout(function () { that.hide() }, 250);
  7. };


  8. var arr_autocomplete = [];//存放自动补全的数组

  9. var that = this;

  10. $('#product_search').typeahead({
  11.    source: function (query, process) {
  12.     
  13.    
  14.        $('#product').hide();
  15.    
  16.        $.post("${base}/pub/ajax_query.jsp", { query: query }, function (data) {


  17.                 if (data.length == 0) { alert("没有查到对应的人"); return; }
  18.                 arr_autocomplete = data;
  19.                 var results = _.map(arr_autocomplete, function (product) {
  20.                    return product.id+"";
  21.            });
  22.                 
  23.                 process(results);
  24.        });


  25.    },

  26.    matcher: function (item) {
  27.        return true;
  28.    },

  29.    highlighter: function (id) {
  30.        var product = _.find(arr_autocomplete, function (p) {
  31.            return p.id == id;
  32.        });
  33.        return product.name + " ($" + product.price + ")";
  34.    },

  35.    updater: function (id) {
  36.        var product = _.find(arr_autocomplete, function (p) {
  37.            return p.id == id;
  38.        });
  39.        that.setSelectedProduct(product);
  40.        return product.name;
  41.    },



  42. });

  43. $('#product').hide();
  44. this.setSelectedProduct = function (product) {
  45.    $('#product').html("Purchase: " + product.name + " ($" + product.price+"_"+ product.id+ ")").show();
  46. }
  47. })
  48. </script>
  49. <!-- 代码补全javascript end1 -->

  50. <div class="form-group">
  51.         <label for="product_search">Product Search: </label>
  52.         <input id="product_search" type="text" data-provide="typeahead">
  53.         <div id="product" style="border-width: 1; padding: 5px; border-style: solid"></div>
  54.     </div>
后台代码:

点击(此处)折叠或打开

  1. @RequestMapping("/ajax_query.jsp")
  2.     public void ajax_query(String query, HttpServletRequest request,
  3.      HttpServletResponse response) throws Exception {

  4.         JSONArray arr = new JSONArray();
  5.         
  6.         System.out.println("query:"+query);
  7.        
  8.        JSONObject o;
  9.        
  10.    
  11.         o = new JSONObject();
  12.         o.put("id", 1);
  13.         o.put("name", "西安");
  14.         o.put("price", 1.6);
  15.         arr.put(o);
  16.        
  17.         o = new JSONObject();
  18.      o.put("id", 2);
  19.      o.put("name", "上海");
  20.      o.put("price", 2.6);
  21.      arr.put(o);
  22.     
  23.      o = new JSONObject();
  24.      o.put("id", 3);
  25.      o.put("name", "长沙");
  26.      o.put("price", 3.6);
  27.      arr.put(o);
  28.     
  29.      o = new JSONObject();
  30.      o.put("id", 4);
  31.      o.put("name", "武汉");
  32.      o.put("price", 4.6);
  33.      arr.put(o);
  34.     
  35.      o = new JSONObject();
  36.      o.put("id", 5);
  37.      o.put("name", "合肥");
  38.      o.put("price", 5.6);
  39.      arr.put(o);
  40.     
  41.      o = new JSONObject();
  42.      o.put("id", 6);
  43.      o.put("name", "天津");
  44.      o.put("price", 6.6);
  45.      arr.put(o);
  46.     
  47.      o = new JSONObject();
  48.      o.put("id", 7);
  49.      o.put("name", "吉林");
  50.      o.put("price", 7.6);
  51.      arr.put(o);
  52.     
  53.      o = new JSONObject();
  54.      o.put("id", 8);
  55.      o.put("name", "新疆");
  56.      o.put("price", 8.6);
  57.      arr.put(o);
  58.     
  59.      o = new JSONObject();
  60.      o.put("id", 9);
  61.      o.put("name", "广西");
  62.      o.put("price", 9.6);
  63.         arr.put(o);
  64.     

  65.        ResponseUtil.renderJson(response, arr.toString());
  66.     }

参考文献:
1.使用 Bootstrap Typeahead 组件
2.Bootstrap typeahead使用问题记录及解决方案, http://blog.csdn.net/lanxuezaipiao/article/details/48193525





阅读(940) | 评论(0) | 转发(0) |
0

上一篇:requirejs入门阅读文章

下一篇:没有了

给主人留下些什么吧!~~