easyui下拉框过滤优化

Posted 【云】风过无痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了easyui下拉框过滤优化相关的知识,希望对你有一定的参考价值。

项目中有个需求:编辑combobox的输入域会自动检索匹配项,当没有任何匹配项时,将combobox重置为初始状态。

处理方式:重写输入域的blur事件,判断当前值是否为加载的数据集的子集,如果不是则重置。

脚本如下:

$.fn.combobox.defaults.inputEvents.blur = function(e){
        var target = e.data.target;
        var opts = $(target).combobox(‘options‘);
        if (opts.reversed || opts.limitToList){
            if (opts.blurTimer){
                clearTimeout(opts.blurTimer);
            }
            opts.blurTimer = setTimeout(function(){
                var existing = $(target).parent().length;
                if (existing){
                    if (opts.reversed){
                        $(target).combobox(‘setValues‘, $(target).combobox(‘getValues‘));
                    } else if (opts.limitToList){
                        doEnter(target);
                    }
                    opts.blurTimer = null;
                }
            },50);
        }
    /* 过滤没有匹配项时,重置为初始状态 */
    var datas = $(target).combobox(‘getData‘);
    if (datas) {
      var has = false;
      datas.map(function(data){
        var text = data[opts.textField].trim(),
            val = data[opts.valueField],
            ctxt = $(target).combobox(‘getText‘).trim(),
            cVal = $(target).combobox(‘getValue‘);
        if(text == ctxt && val == cVal) has = true;
      });
      if(!has) $(target).combobox(‘reset‘);
    }
}

 

以上是关于easyui下拉框过滤优化的主要内容,如果未能解决你的问题,请参考以下文章

easyui中如何设置下拉列表框只能选择,列表框内不能输入,

easyui combobox onchange 自动过滤没有了

easyui中如何设置下拉列表框只能选择,列表框内不能输入,

easyui 动态添加下拉框

关于EasyUI ComboBox(下拉列表框)能否直接输入文本的问题,详情如图所示。

easyui 很多个combobox怎么从数据库搜索数据赋