为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实现在HTML文档加载完毕后自动执行某个事件的方法
May 08 jQuery
jQuery查找和过滤_动力节点节点Java学院整理
Jul 04 jQuery
jQuery实现广告条滚动效果
Aug 22 jQuery
利用jQuery+localStorage实现一个简易的计时器示例代码
Dec 25 jQuery
jQuery中库的引用方法
Jan 06 jQuery
集成vue到jquery/bootstrap项目的方法
Feb 10 jQuery
通过jquery.cookie.js实现记住用户名、密码登录功能
Jun 20 jQuery
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 jQuery
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
JS 遍历 json 和 JQuery 遍历json操作完整示例
Nov 11 jQuery
jQuery操作元素追加内容示例
Jan 10 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 cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
PHP将两个关联数组合并函数提高函数效率
2014/03/18 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
Jquery提交表单 Form.js官方插件介绍
2012/03/01 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
使用node.js搭建服务器
2017/05/20 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
[01:20]PWL开团时刻DAY9——听说潮汐没用?
2020/11/10 DOTA
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
Python装饰器语法糖
2019/01/02 Python
详解python中*号的用法
2019/10/21 Python
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
普师专业个人自荐信范文
2013/11/26 职场文书
门诊挂号室室长岗位职责
2013/11/27 职场文书
幸福家庭事迹材料
2014/02/03 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
药店营业员岗位职责
2015/04/14 职场文书
机关工会工作总结2015
2015/05/26 职场文书
python批量创建变量并赋值操作
2021/06/03 Python
日本十大血腥动漫,那些被禁播的动漫盘点
2022/03/21 日漫