EasyUI combobox

高度自适应

data-options="required:true,editable:false,panelHeight:'auto',panelMaxHeight:170"
加上panelHeight:'auto'即可

取值问题

例子:<select id="cc" class="easyui-combobox" name="cc" >在对其取值的时候?
//不能使用
    $('#cc').val()
//正确应该
//取ID
    $('#cc').combobox('getValue')
//取显示的name
    $('#cc').combobox('getText')

模糊查询

若要模糊查找,就要把jquery.easyui.js文件row[opts.textField].indexOf(q)==0替换为row[opts.textField].indexOf(q)>-1,或者 添加 filter: function(q, row){ var opts = $(this).combobox('options'); return row[opts.textField].indexOf(q) == 0; }。
修改事件keydown.combo为keyup.combo就能支持火狐的中文模糊搜索。
以上是网上的说法,我的是1.4.3版本

1、调整Combobox支持模糊查询,并支持从任意位置开始匹配
            return row[opts.textField].toLowerCase().indexOf(q.toLowerCase()) == 0;
  修改为
          return row[opts.textField].toLowerCase().indexOf(q.toLowerCase()) > -1;


2、调整Combobox,以支持搜索时中文输入结束不自动触发查询

 解决方案:将触发查询执行的引起事件由keydown改成 keyup

    $.fn.combo.defaults = $.extend({}, $.fn.textbox.defaults, {
        inputEvents: { click: _952, keydown: _956, paste: _956, drop: _956 }, panelWidth: null, panelHeight: 200, panelMinWidth: null, panelMaxWidth: null, panelMinHeight: null, panelMaxHeight: null, panelAlign: "left", multiple: false, selectOnNavigation: true, separator: ",", hasDownArrow: true, delay: 200, keyHandler: {
            up: function (e) {
            }, down: function (e) {
            }, left: function (e) {
            }, right: function (e) {
            }, enter: function (e) {
            }, query: function (q, e) {
            }
        }, onShowPanel: function () {
        }, onHidePanel: function () {
        }, onChange: function (_983, _984) {
        }
    });

修改为

    $.fn.combo.defaults = $.extend({}, $.fn.textbox.defaults, {
        inputEvents: { click: _952, keyup: _956, paste: _956, drop: _956 }, panelWidth: null, panelHeight: 200, panelMinWidth: null, panelMaxWidth: null, panelMinHeight: null, panelMaxHeight: null, panelAlign: "left", multiple: false, selectOnNavigation: true, separator: ",", hasDownArrow: true, delay: 200, keyHandler: {
            up: function (e) {
            }, down: function (e) {
            }, left: function (e) {
            }, right: function (e) {
            }, enter: function (e) {
            }, query: function (q, e) {
            }
        }, onShowPanel: function () {
        }, onHidePanel: function () {
        }, onChange: function (_983, _984) {
        }
    });
3.调整Combobox,以支持搜索时中文输入法输英文结束时带回车按钮不自动触发查询
        switch (e.keyCode) {
            case 38:
                opts.keyHandler.up.call(_957, e);
                break;
            case 40:
                opts.keyHandler.down.call(_957, e);
                break;
            case 37:
                opts.keyHandler.left.call(_957, e);
                break;
            case 39:
                opts.keyHandler.right.call(_957, e);
                break;
            case 13:
                e.preventDefault();
                opts.keyHandler.enter.call(_957, e);
                return false;
            case 9:
            case 27:
                _950(_957);
                break;
            default:
                if (opts.editable) {
                    if (_958.timer) {
                        clearTimeout(_958.timer);
                    }
                    _958.timer = setTimeout(function () {
                        var q = t.combo("getText");
                        if (_958.previousText != q) {
                            _958.previousText = q;
                            t.combo("showPanel");
                            opts.keyHandler.query.call(_957, q, e);
                            t.combo("validate");
                        }
                    }, opts.delay);
                }
        }
修改为
        switch (e.keyCode) {
            case 38:
                opts.keyHandler.up.call(_957, e);
                break;
            case 40:
                opts.keyHandler.down.call(_957, e);
                break;
            case 37:
                opts.keyHandler.left.call(_957, e);
                break;
            case 39:
                opts.keyHandler.right.call(_957, e);
                break;
            case 13:
                e.preventDefault();
                if (opts.editable) {
                    if (_958.timer) {
                        clearTimeout(_958.timer);
                    }
                    _958.timer = setTimeout(function () {
                        var q = t.combo("getText");
                        if (_958.previousText != q) {
                            _958.previousText = q;
                            t.combo("showPanel");
                            opts.keyHandler.query.call(_957, q, e);
                            t.combo("validate");
                        }
                    }, opts.delay);
                }
                //opts.keyHandler.enter.call(_957, e);
                return false;
            case 9:
            case 27:
                _950(_957);
                break;
            default:
                if (opts.editable) {
                    if (_958.timer) {
                        clearTimeout(_958.timer);
                    }
                    _958.timer = setTimeout(function () {
                        var q = t.combo("getText");
                        if (_958.previousText != q) {
                            _958.previousText = q;
                            t.combo("showPanel");
                            opts.keyHandler.query.call(_957, q, e);
                            t.combo("validate");
                        }
                    }, opts.delay);
                }
        }
原文地址:https://www.cnblogs.com/ccccc05/p/6213971.html