JQuery 插件 autocomplete

  最近有个功能就是对文本框里的内容模糊查询,并出现一个下拉框对模糊查询出来的内容进行选择。最开始写的时候我就想起之前的公司遇到过,用的是rpc(简称人品差),but我已经记不得咋个实现的了,而后各类求助之前的同事。然而他们都不晓得咋个弄了。好吧,咋办呢,我就问旁边的同事有没有遇到过这种相似的功能,怎么作的,早点问也不至于时间白白浪费吧。因而就有了autocomplete.个人知识面不广,因此如今我也尽可能在总结,不要笑。javascript

  进入主题:css

  官网地址:api.jqueryui.com/autocomplete/html

  刚刚看了下这个官网,这个功能知识jQueryui中的一个,还有不少已经封装好的。真是见识太少了。java

  引入autocomplete插件须要的js和css文件jquery

  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  模拟source数据
<script>
$(function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
 
 
$( "#tags" ).autocomplete({
    source: availableTags
});
 
});
</script>
</head>
<body>
 
<div class="ui-widget">//主要呈现下拉框的样式引入
<label for="tags">Tags: </label>
<input id="tags">
</div>
</body>
</html>
固然web中数据都是从数据库里获取的,source就是动态生成
$( "#autocomplete" ).autocomplete({
    source: function( request, response ) {
        $.ajax({
          url:"",
          ...,
          success:function(data){
              //这里看你data是啥子类型,遍历出来的数据就是source的值
              response( $.map( data, function( item ) {
                return { dbId:item.dbid, jdbcUrl:item.jdbcUrl, ip:item.ip, port:item.port }
            })      
          }
 
         })
      },
   select:function(event,ui){
    //在这里我将选中的值给文本框。可是选中后,文本框清空。值打印出来是获得了的,百思不得其解
    },
   appendTo:"#tag",//选择框出如今那个下面
  }) );
}
});
//最后再将数据展现到面板中,用它自带的样式
_renderItem: function( ul, item ) {
return $( "<li>" )
.attr( "data-value", item.value )
.append( item.label )
.appendTo( ul );
}

//实在是用不来这个网页版的博客园,啥子都是要纯输入web

参考:http://www.open-open.com/lib/view/open1340957775905.htmlajax