為JQuery EasyUI 表單組件增加焦點切換功能的方法
1、背景說明
在使用 JQuery EasyUI 各表單組件時,實際客戶端頁面元素是由 JQuery EasyUI 生成的,元素的焦點切換,雖然 Tab 鍵可以正常用,但順序控制屬性 tabindex 不起作用,因為頁面看到的元素,是生成的,沒有tabindex 屬性,而真實的元素被隱藏了。本文通過一個自定義函數(shù),實現(xiàn)Tab 和 回車鍵的焦點切換功能。
2、函數(shù)定義
通過捕獲窗口按件,對回車和Tab鍵進行了熱點切換處理。先根據(jù)當前焦點,獲取需要tabindex 屬性,加1后為下一焦點無素的屬性值,根據(jù)這一屬性找到下一焦點元素,并設置成焦點。
//增加改變焦點操作
function addChangeFocusOpe()
{
$(window).keydown(function(event){//按鍵事件
if(event.keyCode==13 || event.keyCode==9) //回車 或 tab鍵
{
var tabindex = $($(':focus').parent()[0]).prev().attr("tabindex"); //?。ó斍敖裹c--父元素--前一元素)的 tabindex 屬性。該結構根據(jù)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"); //設置的屬性值,用于判斷是否是“文本區(qū)域”
var focusObj = $(nextInput[0]).next('span').find('input'); //元素--下一span元素 --內(nèi)部input。該結構根據(jù)jQuery EasyUI生成的頁面結構而定
if(options.indexOf("multiline:true") != -1)
{//要設置焦點的元素是“文本區(qū)域”
focusObj = nextObj.next('span').find('textarea');
}
focusObj.focus(); //設置焦點
}
}
}
if(event.keyCode==9)
{//對于tab鍵,則取消其本有功能,因為上面已完成焦點轉換
return false;
}
});
}
3、使用方式
(1)頁面調(diào)用函數(shù)
$(function(){
$('#code').next('span').find('input').focus(); //第一個元素設置焦點
addChangeFocusOpe(); //頁面增加焦點切換操作
});
(2)表單元素設置 tabindex 屬性

4、約束和限制
由于函數(shù)實現(xiàn)時,tabindex 采用 +1的方式,去查找下一元素,所在頁面設置 tabindex 屬性時,一定要連續(xù),否則在斷續(xù)的地方,將不起作用。
以上這篇為JQuery EasyUI 表單組件增加"焦點切換"功能的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
jQuery插件HighCharts繪制簡單2D折線圖效果示例【附demo源碼】
這篇文章主要介紹了jQuery插件HighCharts繪制簡單2D折線圖效果,結合完整實例形式分析了jQuery使用HighCharts插件繪制折線圖的實現(xiàn)步驟與相關操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-03-03
使用ajaxfileupload.js實現(xiàn)ajax上傳文件php版
這篇文章主要介紹了使用ajaxfileupload.js實現(xiàn)ajax上傳文件php版,需要的朋友可以參考下2014-06-06

