采用 Typeahead (Bootstrap-3-Typeahead-master)
<script type="text/javascript" src="/js/plugins/bootstrap3-typeahead.min.js"></script>
<script type="text/javascript">//自动补全 $("#loginInfoDisplay").typeahead({ minLength:3,//最小开始查询的字符个数 items:5,//下拉列表中最多显示的条数 source:function(query,process){//加载数据源 $.ajax({ dataType:"json", type:"POST", url:"vedioAuth_autocomplate.do", data:{str:query}, success:function(data){//这个data就是一个json对象的数组{id:xx,username:xxxx} if(data && data.length){ process(data);//process就是交给我们获得数据之后用来调用的方法,这个方法执行了,下拉列表就出来了 } } }); }, //用来告诉typeahead怎么显示json对象中的内容 displayText:function(item){ return item.username } }).change(function(){ var current = $(this).typeahead("getActive"); if(current){ $("#loginInfoValue").val(current.id); } }); </script>
<div class="col-sm-6"> <div class="dropdown" id="autocomplate"> <input type="text" class="form-control" id="loginInfoDisplay" autocomplete="off" /> <input type="text" name="loginInfoValue" id="loginInfoValue"/> </div> </div>
=========================================================================
/** * 用于用户的automcomplate */ @RequestMapping("vedioAuth_autocomplate") @ResponseBody public List<Map<String, Object>> autoComplate(String str){ return userinfoService.autoComplate(str); }
=============================================================
@Override public List<Map<String, Object>> autoComplate(String keyword) { return this.userinfoMapper.autoComplate(keyword); }
=============================================================
<select id="autoComplate" resultType="hashmap"> SELECT id,username FROM logininfo WHERE username LIKE concat(#{keyword},'%') </select>