为JQuery EasyUI 表单组件增加焦点切换功能的方法


Posted in jQuery onApril 13, 2017

1、背景说明

    在使用 JQuery  EasyUI 各表单组件时,实际客户端页面元素是由 JQuery EasyUI 生成的,元素的焦点切换,虽然 Tab 键可以正常用,但顺序控制属性 tabindex 不起作用,因为页面看到的元素,是生成的,没有tabindex 属性,而真实的元素被隐藏了。本文通过一个自定义函数,实现Tab回车键的焦点切换功能。

2、函数定义

 通过捕获窗口按件,对回车和Tab键进行了热点切换处理。先根据当前焦点,获取需要tabindex 属性,加1后为下一焦点无素的属性值,根据这一属性找到下一焦点元素,并设置成焦点。

//增加改变焦点操作
function addChangeFocusOpe()
{
 $(window).keydown(function(event){//按键事件
  if(event.keyCode==13 || event.keyCode==9) //回车 或 tab键
  {
   var tabindex = $($(':focus').parent()[0]).prev().attr("tabindex"); //取(当前焦点--父元素--前一元素)的 tabindex 属性。该结构根据jQuery EasyUI生成的页面结构而定。
   if(tabindex != undefined)
   {
    var nextIndex = parseInt(tabindex) + 1; //下一焦点元素tabindex编号
    var nextInput = $("input[tabindex='"+nextIndex+"']"); //查找下一焦点元素
    if(nextInput.length > 0);
    {
     var nextObj = $(nextInput[0]);
     var options = nextObj.attr("data-options"); //设置的属性值,用于判断是否是“文本区域”
     var focusObj = $(nextInput[0]).next('span').find('input'); //元素--下一span元素 --内部input。该结构根据jQuery EasyUI生成的页面结构而定
     if(options.indexOf("multiline:true") != -1)
     {//要设置焦点的元素是“文本区域”
      focusObj = nextObj.next('span').find('textarea');
     }
     focusObj.focus(); //设置焦点
    }
   }
  }
  if(event.keyCode==9)
  {//对于tab键,则取消其本有功能,因为上面已完成焦点转换
    return false;
  }
 });
}

3、使用方式

(1)页面调用函数

$(function(){ 
 $('#code').next('span').find('input').focus(); //第一个元素设置焦点 
 addChangeFocusOpe(); //页面增加焦点切换操作 
});

(2)表单元素设置 tabindex 属性

为JQuery EasyUI 表单组件增加焦点切换功能的方法

4、约束和限制

由于函数实现时,tabindex 采用 +1的方式,去查找下一元素,所在页面设置 tabindex 属性时,一定要连续,否则在断续的地方,将不起作用。

以上这篇为JQuery EasyUI 表单组件增加"焦点切换"功能的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery实现多张图片上传预览(不经过后端处理)
Apr 29 jQuery
jquery点赞功能实现代码 点个赞吧!
May 29 jQuery
jQuery中extend函数简单用法示例
Oct 11 jQuery
jQuery封装animate.css的实例
Jan 04 jQuery
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
May 09 jQuery
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 jQuery
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
jQuery实现数字华容道小游戏(实例代码)
Jan 16 jQuery
用jQuery实现抽奖程序
Apr 12 jQuery
jQuery三组基本动画与自定义动画操作实例总结
May 09 jQuery
JQuery实现折叠式菜单的详细代码
Jun 03 jQuery
jQuery编写QQ简易聊天框
Aug 27 jQuery
详谈jQuery.load()和Jsp的include的区别
Apr 12 #jQuery
使用jQuery和ajax代替iframe的方法(详解)
Apr 12 #jQuery
jQuery用noConflict代替$的实现方法
Apr 12 #jQuery
jQuery判断邮箱格式对错实例代码讲解
Apr 12 #jQuery
jquery 校验中国身份证号码实例详解
Apr 11 #jQuery
基于jQuery实现瀑布流页面
Apr 11 #jQuery
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 #jQuery
You might like
PHP文件操作实现代码分享
2011/09/01 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
用ADODB.Stream转换
2007/01/22 Javascript
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
js实现旋转木马效果
2017/03/17 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
微信小程序webSocket的使用方法
2020/02/20 Javascript
python服务器端收发请求的实现代码
2014/09/29 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
numpy.where() 用法详解
2019/05/27 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
python多线程扫描端口(线程池)
2019/09/04 Python
python 解决flask uwsgi 获取不到全局变量的问题
2019/12/22 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
python制作微博图片爬取工具
2021/01/16 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
药学专业大专生的自我评价
2013/12/12 职场文书
面试后的英文感谢信
2014/02/01 职场文书
验房委托书
2014/08/30 职场文书
家长对孩子的寄语
2015/02/26 职场文书
青年志愿者服务活动总结
2015/05/06 职场文书
Python实现排序方法常见的四种
2021/07/15 Python
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python