溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么為JQuery EasyUI表單組件增加焦點(diǎn)切換功能

發(fā)布時(shí)間:2022-03-29 10:40:37 來(lái)源:億速云 閱讀:215 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了怎么為JQuery EasyUI表單組件增加焦點(diǎn)切換功能的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇怎么為JQuery EasyUI表單組件增加焦點(diǎn)切換功能文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

1、背景說(shuō)明

    在使用 JQuery  EasyUI 各表單組件時(shí),實(shí)際客戶端頁(yè)面元素是由 JQuery EasyUI 生成的,元素的焦點(diǎn)切換,雖然 Tab 鍵可以正常用,但順序控制屬性 tabindex 不起作用,因?yàn)轫?yè)面看到的元素,是生成的,沒(méi)有tabindex 屬性,而真實(shí)的元素被隱藏了。本文通過(guò)一個(gè)自定義函數(shù),實(shí)現(xiàn)Tab 和 回車(chē)鍵的焦點(diǎn)切換功能。

2、函數(shù)定義

 通過(guò)捕獲窗口按件,對(duì)回車(chē)和Tab鍵進(jìn)行了熱點(diǎn)切換處理。先根據(jù)當(dāng)前焦點(diǎn),獲取需要tabindex 屬性,加1后為下一焦點(diǎn)無(wú)素的屬性值,根據(jù)這一屬性找到下一焦點(diǎn)元素,并設(shè)置成焦點(diǎn)。

//增加改變焦點(diǎn)操作
function addChangeFocusOpe()
{
 $(window).keydown(function(event){//按鍵事件
  if(event.keyCode==13 || event.keyCode==9) //回車(chē) 或 tab鍵
  {
   var tabindex = $($(':focus').parent()[0]).prev().attr("tabindex"); //?。ó?dāng)前焦點(diǎn)--父元素--前一元素)的 tabindex 屬性。該結(jié)構(gòu)根據(jù)jQuery EasyUI生成的頁(yè)面結(jié)構(gòu)而定。
   if(tabindex != undefined)
   {
    var nextIndex = parseInt(tabindex) + 1; //下一焦點(diǎn)元素tabindex編號(hào)
    var nextInput = $("input[tabindex='"+nextIndex+"']"); //查找下一焦點(diǎn)元素
    if(nextInput.length > 0);
    {
     var nextObj = $(nextInput[0]);
     var options = nextObj.attr("data-options"); //設(shè)置的屬性值,用于判斷是否是“文本區(qū)域”
     var focusObj = $(nextInput[0]).next('span').find('input'); //元素--下一span元素 --內(nèi)部input。該結(jié)構(gòu)根據(jù)jQuery EasyUI生成的頁(yè)面結(jié)構(gòu)而定
     if(options.indexOf("multiline:true") != -1)
     {//要設(shè)置焦點(diǎn)的元素是“文本區(qū)域”
      focusObj = nextObj.next('span').find('textarea');
     }
     focusObj.focus(); //設(shè)置焦點(diǎn)
    }
   }
  }
  if(event.keyCode==9)
  {//對(duì)于tab鍵,則取消其本有功能,因?yàn)樯厦嬉淹瓿山裹c(diǎn)轉(zhuǎn)換
    return false;
  }
 });
}

3、使用方式

(1)頁(yè)面調(diào)用函數(shù)

$(function(){ 
 $('#code').next('span').find('input').focus(); //第一個(gè)元素設(shè)置焦點(diǎn) 
 addChangeFocusOpe(); //頁(yè)面增加焦點(diǎn)切換操作 
});

(2)表單元素設(shè)置 tabindex 屬性

怎么為JQuery EasyUI表單組件增加焦點(diǎn)切換功能

4、約束和限制

由于函數(shù)實(shí)現(xiàn)時(shí),tabindex 采用 +1的方式,去查找下一元素,所在頁(yè)面設(shè)置 tabindex 屬性時(shí),一定要連續(xù),否則在斷續(xù)的地方,將不起作用。

關(guān)于“怎么為JQuery EasyUI表單組件增加焦點(diǎn)切換功能”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“怎么為JQuery EasyUI表單組件增加焦點(diǎn)切換功能”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI