EasyUI 1.3.2 中 Combobox自动检索 键盘上下选择Bug问题
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问题的更多相关文章
- combobox级联检索下拉选择框
1.效果图 2.前端 @{ ViewBag.Title = "Index"; Layout = null; @*自动筛选下拉框*@ <script src="~/S ...
- 解答WPF中ComboBox SelectedItem Binding不上的Bug
正在做一个打印机列表,从中选择一个打印机(System.Printing) <ComboBox Width="150" ItemsSource="{Binding ...
- C#中combobox不可编辑与不可选择
不可编辑:comboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 将Style属性改为csDropDownL ...
- jQuery EasyUI 1.4.4 Combobox无法检索中文输入的问题
在项目里使用了EasyUI的Combobox,当ComboBox的item是英文时,都能正常检索出对应项,但是如果使用中文输入法输入几个字母然后通过按shift键输入时,奇怪的事情发生了,combob ...
- jquery easyUI中combobox的使用总结
jquery easyUI中combobox的使用总结 一.如何让jquery-easyui的combobox像select那样不可编辑?为combobox添加editable属性 设置为false ...
- easyui combobox 拼音检索快捷选择输入
easyui combobox 拼音检索快捷选择输入 效果如图 $.ajax({ url: UserActionUrl + '?action=listuserworktype', dataType ...
- jQuery EasyUI Combobox无法检索中文输入的问题
在项目里使用了EasyUI的Combobox,当ComboBox的item是英文时,都能正常检索出对应项,但是如果使用中文输入法输入几个字母然后通过按shift键输入时,奇怪的事情发生了,combob ...
- EasyUI 中 Combobox里的onChange和onSelect事件的区别
EasyUI 中 Combobox 选项发生改变时会触发 onChange,onSelect,onClick 3 个事件. 最近要做一个级联的 Combo 菜单,类似于选择地址时让用户填写省,市,区的 ...
- EasyUi模糊匹配搜索框combobox
现在项目当中很多已经应用了Jquery-easyUi这个界面框架了,所以,学习一点easyUI的常用工具就显得很重要了,现在介绍的就是我在项目中用到的easyUi的模糊匹配组合框combobox. c ...
随机推荐
- MySQL数据库使用规范
一.建表规约 1.[强制]表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint (1表示是,0表示否) 说明:任何字段如果为非负数,必须是unsigned ...
- adb截图机顶盒
操作命令如下 1.adb connect 192.168.1.14(连接电视) 2.adb shell /system/bin/screencap -p /data/1.png(截图并命名并存储) 3 ...
- IDEA 代码生成插件 CodeMaker
Java 开发过程中经常会遇到编写重复代码的事情,例如说:编写领域类和持久类的时候,大部分时候它们的变量名称,类型是一样的,在编写领域类的时候常常要重复写类似的代码.类似的问题太多……这里介绍一个 I ...
- AllocateHWnd SetTimer API
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- laravel学习资料
http://blog.csdn.net/qq_20873039/article/category/6246852 --laravel核心概念 /Eloquent ORM / laravel bl ...
- JavaScript 原型和对象创建底层原理
1. prototype/__proto__/constructor JS原型链和继承网上已经烂大街了,5毛可以买一堆,这里只提一下: constructor:普通对象和函数对象都有,指向创建它的函数 ...
- python-setuptool安装
安装setuptools时报error: ”RuntimeError: Compression requires the (missing) zlib module“ 解决办法: yum安装zlib和 ...
- [转][Oracle]清理归档日志
来自:https://www.cnblogs.com/Roobbin/p/9617962.html 在Oracle 服务器,打开cmd命令行,执行以下命令: rman target / crossch ...
- MVC和WebApi的区别:
1.mvc 和WebApi: 区别: a.MVC是建立网站的一种框架,倾向于返回用户的页面请求:webApi倾向于返回用户数据请求 b.mvc直接继承system.mvc.controller:web ...
- spring事务[转]
https://www.cnblogs.com/cnmenglang/p/6410848.html 先了解事务的7种传播属性: PROPAGATION_REQUIRED -- 支持当前事务,如果当前没 ...