JQuery 插件 autocomplete
最近有个功能就是对文本框里的内容模糊查询,并出现一个下拉框对模糊查询出来的内容进行选择。最开始写的时候我就想起以前的公司遇到过,用的是rpc(简称人品差),but我已经记不得咋个实现的了,然后各种求助以前的同事。然而他们都不晓得咋个弄了。好吧,咋办呢,我就问旁边的同事有没有遇到过这种类似的功能,怎么做的,早点问也不至于时间白白浪费吧。于是就有了autocomplete.我的知识面不广,所以现在我也尽量在总结,不要笑。
进入主题:
官网地址:api.jqueryui.com/autocomplete/
刚刚看了下这个官网,这个功能知识jQueryui中的一个,还有很多已经封装好的。真是见识太少了。
引入autocomplete插件需要的js和css文件
<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 );
}
//实在是用不来这个网页版的博客园,啥子都是要纯输入
参考:http://www.open-open.com/lib/view/open1340957775905.html