jquery ui 插件之autocomplete
jquery ui 的autocomplete组件可以到jquery ui官网去下载:http://jqueryui.com/download/#!
可以只勾选自己需要的组件,jquery ui会自动的把依赖也给你选择上,这叫做"定制下载",下载下来就可以使用autocomplete插件了。
下面是一个例子,完成的功能如下:
-
输入可以自动完成(这自然是基本功能)
-
点击输入框会让自动完成框显现出来
下面是效果图:
涉及到的html:
<form class="form-inline"> <div class="form-group"> <label for="queryName"><i class="nec">*</i>公司选择</label> <input type="text" style="width:200px;margin-left:8px;" class="form-control input-sm" id="companyCombo" name="companyCombo"> </div> </form>
js代码:
var srcArr = []; //获取下拉框的数据源 $.ajax({ type:"post", url:"af_getAllCompanies", success:function(data){ $.each(data,function(i,obj){ var item={}; item["label"]=obj["name"]; item["aaaa_id"]=obj["aaaa_id"]; srcArr.push(item); }); //定义自动完成 $("#companyCombo").autocomplete({ minLength: 0, source: srcArr, select: function(event, ui){ $(this).val(ui.item.label) ; loadData(ui.item.aaaa_id); event.preventDefault(); }, change:function(event, ui){ } }); } }); //点击触发自动完成 $("#companyCombo").focus(function () { $("#companyCombo").autocomplete("search"); });
注意:要想点击输入框就出现autocomplete组件,需要设置autocomplete组件的属性:minLength: 0,表示不输入就可以显示autocomplete,另外还要设置输入框获取焦点事件:
$("#companyCombo").focus(function () {
$("#companyCombo").autocomplete("search");
});
srcArr(autocomplete的数据源)格式可以是字符串数组:[ "Choice1", "Choice2" ],也可以是对象数组,格式如上面代码中的那种:
[{label:xxx,aaa_id:xxxx}。。。],其中label是显示id文字,必须要有这儿名字的属性,其他属性都可以自己定义,然后在事件中可以通过ui.item取到属性。