为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 ajax请求struts action实现异步刷新
Apr 19 jQuery
jQuery树插件zTree使用方法详解
May 02 jQuery
基于jquery日历价格、库存等设置插件
Jul 05 jQuery
jQuery实现菜单栏导航效果
Aug 15 jQuery
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 jQuery
利用jQuery+localStorage实现一个简易的计时器示例代码
Dec 25 jQuery
jQuery实现的两种简单弹窗效果示例
Apr 18 jQuery
手写简单的jQuery雪花飘落效果实例
Apr 22 jQuery
解决jquery有正确返回值但不执行success函数的问题
Aug 20 jQuery
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
Aug 08 jQuery
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 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 sprintf()函数让你的sql操作更安全
2008/07/23 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
php生成mysql的数据字典
2016/07/07 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
AutoSave/自动存储功能实现
2007/03/24 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
Python开发的HTTP库requests详解
2017/08/29 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
python web框架中实现原生分页
2019/09/08 Python
python 初始化一个定长的数组实例
2019/12/02 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
如何基于python操作excel并获取内容
2019/12/24 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
大学活动邀请函
2014/01/28 职场文书
购房意向书
2014/04/01 职场文书
电工技术比武方案
2014/05/11 职场文书
学籍证明模板
2014/11/21 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
事业单位考察材料范文
2014/12/25 职场文书
采购员岗位职责
2015/02/03 职场文书
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android