使easyui combobox控件支持上下键切换数据选项

 

使用combobox控件时,其操作方式为:

使用鼠标点击▼图标,显示panel后,使用鼠标点击,或者键盘的上下键来选择数据。

而录入人员习惯全键盘操作,不希望选择时还使用鼠标。其目标就是:当其获取焦点时,希望能使用键盘的上下键来选择数据。

为达到这个目标,就分析了easyui combobox的源代码,发现其设计人员已经考虑了这这种情况,只是提供的方法中限制只有当panel显示的时候才允许选择。

所以,把这个条件去掉了,就达到了目的。

具体修改内容如下:

/**
 * combobox - jQuery EasyUI
 *
 * Licensed under the GPL:
 *   http://www.gnu.org/licenses/gpl.txt
 *
 * Copyright 2010 stworthy [ stworthy@gmail.com ]
 *
 * Dependencies:
 *   combo
 *
 */

(function($) {

 ......

    function selectPrev(target) {
  var panel = $(target).combo('panel');
  var values = $(target).combo('getValues');
  var item = panel.find('div.combobox-item[value=' + values.pop() + ']');
  if (item.length) {
   // prev方法中去掉筛选:var prev = item.prev(':visible');
   var prev = item.prev();
   if (prev.length) {
    item = prev;
   }
  } else {
   item = panel.find('div.combobox-item:visible:last');
  }
  var value = item.attr('value');
  setValues(target, [value]);
  scrollTo(target, value);
 };
 function selectNext(target) {
  var panel = $(target).combo('panel');
  var values = $(target).combo('getValues');
  var item = panel.find('div.combobox-item[value=' + values.pop() + ']');
  if (item.length) {
   // next方法中去掉筛选: var next = item.next(':visible');
   var next = item.next();
   if (next.length) {
    item = next;
   }
  } else {
   item = panel.find('div.combobox-item:visible:first');
  }
  var value = item.attr('value');
  setValues(target, [value]);
  scrollTo(target, value);
 };

......

})(jQuery);

 

当然,也可以采用扩展的方式修改对象的行为。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值