EasyUI 自带的Combobox控件,提供了下拉列值自动检索功能。

在用到的EasyUI 1.3.2版本中还是有点问题,在键盘上下键移动选择过程中只能定位在第一个,不能正常向下移动

问题解决方式:不多说,先直接贴代码。

在EasyUI核心文件jquery.easyui.min.js搜索找到对应下面的方法,修改对应的下面两处方法,OK了。

 function _797(_798) {
var _799 = $(_798).combo("panel");
var _79a = $(_798).combo("getValues");
var item = _799.find("div.combobox-item[value=\"" + _79a.pop() + "\"]");
if (item.length) {
//var prev=item.prev(":visible"); 自身代码,有BUG,在手动输入条件检索过程中不能正常键盘上下选择
var prev = item.prevAll(":visible:first"); //用prevAll()替换上面方法
if (prev.length) {
item = prev;
}
} else {
item = _799.find("div.combobox-item:visible:last");
}
var _79b = item.attr("value");
_79c(_798, _79b);
_793(_798, _79b);
};
function _79d(_79e) {
var _79f = $(_79e).combo("panel");
var _7a0 = $(_79e).combo("getValues");
var item = _79f.find("div.combobox-item[value=\"" + _7a0.pop() + "\"]");
if (item.length) {
//var next=item.next(":visible");
var next = item.nextAll(":visible:first"); //此处对应改为nextAll()方法
if (next.length) {
item = next;
}
} else {
item = _79f.find("div.combobox-item:visible:first");
}
var _7a1 = item.attr("value");
_79c(_79e, _7a1);
_793(_79e, _7a1);
};

问题解决完,简单说一下具体原因:

在跟踪EasyUI和页面样式时,发现,在输入检索条件后,下拉列表中显示符合条件的内容,其余的则被添加style="display: none;",在页面中隐匿不可见。

在上面的源码中,我们可以看到对应的上下选择使用的是下面两个方法:

next(":visible");   执行后,效果就是:选择下一个可见的列表项。看下jQuery 的API文档我们知道,next()函数只返回后面那个紧邻的同辈元素。

如果下一项处于隐匿状态,页面下拉列使用键盘上下选择也没有选中的效果。

(测试中发现,next()的"只返回后面那个紧邻的同辈元素" 优先级要高于":visible"选择器效果。如果下一项是隐匿状态,也会被选中,

只是被隐匿,不显示而已。验证的最直观方式是我们提交表单,会发现这个表单是带着值的。)

prev(":visible");  效果同上。

知道了上面两个方法的特性,对源码作了简单修改。

           nextAll(":visible:first");   查找当前元素之后所有的同辈可见元素的第一个。

prevAll(":visible:first");   类上。

OK,阐述完毕,费了半天劲,希望能帮助到遇到同样问题的同志们。

EasyUI 1.3.2 中 Combobox自动检索 键盘上下选择Bug问题的更多相关文章

  1. combobox级联检索下拉选择框

    1.效果图 2.前端 @{ ViewBag.Title = "Index"; Layout = null; @*自动筛选下拉框*@ <script src="~/S ...

  2. 解答WPF中ComboBox SelectedItem Binding不上的Bug

    正在做一个打印机列表,从中选择一个打印机(System.Printing) <ComboBox Width="150" ItemsSource="{Binding ...

  3. C#中combobox不可编辑与不可选择

    不可编辑:comboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 将Style属性改为csDropDownL ...

  4. jQuery EasyUI 1.4.4 Combobox无法检索中文输入的问题

    在项目里使用了EasyUI的Combobox,当ComboBox的item是英文时,都能正常检索出对应项,但是如果使用中文输入法输入几个字母然后通过按shift键输入时,奇怪的事情发生了,combob ...

  5. jquery easyUI中combobox的使用总结

    jquery easyUI中combobox的使用总结 一.如何让jquery-easyui的combobox像select那样不可编辑?为combobox添加editable属性 设置为false ...

  6. easyui combobox 拼音检索快捷选择输入

    easyui combobox 拼音检索快捷选择输入 效果如图   $.ajax({ url: UserActionUrl + '?action=listuserworktype', dataType ...

  7. jQuery EasyUI Combobox无法检索中文输入的问题

    在项目里使用了EasyUI的Combobox,当ComboBox的item是英文时,都能正常检索出对应项,但是如果使用中文输入法输入几个字母然后通过按shift键输入时,奇怪的事情发生了,combob ...

  8. EasyUI 中 Combobox里的onChange和onSelect事件的区别

    EasyUI 中 Combobox 选项发生改变时会触发 onChange,onSelect,onClick 3 个事件. 最近要做一个级联的 Combo 菜单,类似于选择地址时让用户填写省,市,区的 ...

  9. EasyUi模糊匹配搜索框combobox

    现在项目当中很多已经应用了Jquery-easyUi这个界面框架了,所以,学习一点easyUI的常用工具就显得很重要了,现在介绍的就是我在项目中用到的easyUi的模糊匹配组合框combobox. c ...

随机推荐

  1. day-08文件的操作

    三种字符串 1.普通字符串:u‘以字符作为输出单位’ print(u'abc') # 用于显示 2.二进制字符串:b‘二进制字符串以字节作为输出单位’ print(b'abc') # 用于传输 3.原 ...

  2. linux下突破10万高并发的nginx性能优化经验

    一.这里的优化主要是指对nginx的配置优化,一般来说nginx配置文件中对优化比较有作用的主要有以下几项:1)nginx进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的倍数.worke ...

  3. java-log4j日志打印

    参考路径: https://blog.csdn.net/edward0830ly/article/details/8250412 https://www.cnblogs.com/ITtangtang/ ...

  4. 【转】Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置

    Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置 原贴:https://www.cnblogs.com/jackadam/p/8568833.html ...

  5. tensorflow报cudnn错误

    E tensorflow/stream_executor/cuda/cuda_dnn.cc:363] Loaded runtime CuDNN library: 7.0.5 but source wa ...

  6. 前端需要了解的HTTP协议

    目录 HTTP协议 HTTP概述 HTTP之URL HTTP状态码 HTTP首部 HTTP首部字段 HTTP通用首部字段 HTTP请求首部字段 HTTP工作原理 HTTP报文内的HTTP信息 HTTP ...

  7. zookeeper的读写流程

    zookeeper的读写流程 基本架构 节点数要求是奇数. 常用的接口是 get/set/create/getChildren. 读写流程 写流程 客户端连接到集群中某一个节点 客户端发送写请求 服务 ...

  8. gevent-websocket初识

    初试 from flask import Flask, request from geventwebsocket.handler import WebSocketHandler from gevent ...

  9. windows2008 apache2.4 tomcat-7多域名绑定环境配置

    =====================软件清单Apache2.4.33apache-tomcat-7.0.85===================== 1.安装apache    1.1下载ap ...

  10. linux服务器后台运行服务

    linux 后台运行一个服务 难免会遇到在Linux,后台执行任务.下面,总结了一下关闭窗口任然在后台执行的方法,例如 #执行一个打包命令 tar czf /data/backup.tgz /data ...