首页 > 其他 > 详细

easyui下拉框过滤优化

时间:2018-04-27 13:02:18      阅读:244      评论:0      收藏:0      [点我收藏+]

项目中有个需求:编辑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下拉框过滤优化

原文:https://www.cnblogs.com/xtreme/p/8961650.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!