Easy UI combobox实现类似 Select2的效果,下拉带搜索框

一直在开发一个新系统,其中用Easy UI作为前端框架,少不了用 combobox做为一个 下拉控件,它支持 可编辑 模糊本地数据过滤,也可支持 不可编辑 下拉 选择的功能;

$('#ID' ).combobox({
            data: CommonSelect.Return_Company('All'),
            valueField: 'ID',
            textField: 'Company_Name',
            prompt: '选择对应公司',
            editable: false/true
        });

效果就是如下:

 

 

 

 

 

 

 

 但 实际需求中,对于下拉 又不想让他们编辑,但又方便他们查找 下拉数据,这时候 下拉 带搜索的 功能孕育出来了!
Easy UI有组合控件一说,所以得用到这个,实现如下:

$('#ID' ).combobox({
            data: CommonSelect.Return_Company('All'),
            valueField: 'ID',
            textField: 'Company_Name',
            prompt: '选择对应公司',
            editable: false,
            onBeforeLoad: function () {
                var panel = $('#ID' ).combo('panel')
                $("<input type=\"text\" placeholder=\"  输入查询内容\" style=\"width:100%;\" onkeyup=\"CommonSelect.ChangeData_Company(this)\" />").prependTo($(panel).parent("div"));
            }
        });

CommonSelect.ChangeData_Company = function (Obj) {
var val = Obj.value;
var _CurrData = [];
var _company = CommonSelect.Return_Company();
_company.map(function (elem, index) {
if (elem.Company_Name.indexOf(val) != -1) {
_CurrData.push(elem);
}
});
if (_CurrData.length == 0) {
_CurrData.push({ ID: 0, Company_Name: '-请选择-' });
}
$('#ID').combobox('loadData', _CurrData);
}

 

效果图:

 

posted @ 2019-09-12 13:32  勿悲勿急,戒骄戒躁  阅读(1036)  评论(1编辑  收藏  举报