2014-07-09 58 views

回答

1

我相信這是你在找什麼

window.onload = function() { 
    var i, f = document.getElementsByTagName("FORM"); 
    for(i = 0; i < f.length; i++){ 
     (function(i){ 
     f[i].elements[f[i].length-1].onkeydown = function(e) { 
      var keyCode = e.keyCode || e.which; 
      if(keyCode == 9) { 
       f[i].elements[0].focus(); 
       e.preventDefault(); 
      } 
     }; 
     })(i); 
    } 
}; 

檢查工作jsFiddle

-1
<element tabindex="number"> 

非常直接的實現。

+0

請認真閱讀問題。 –

+0

@SergeyBasharov 1.我在回答後編輯了您的問題。我沒有看到tabindexing無法正常工作的原因。發佈代碼示例。謝謝。 – redditor

+0

通過編輯我剛纔說明了一點,我想在一個表單的元素之間循環,而不是在頁面上所有表單的輸入之間循環。您建議的解決方案從頁面上的第1個元素到第n個元素,而不是形式。所以,當我按Tab鍵在一個表單的最後一個輸入時,下一個輸入不是這個表單的第一個輸入,而是tabindex大於這個表單最後一個輸入的下一個表單的第一個輸入。 –

3

首先你不應該這樣做,因爲這不是用戶期望的。

如果你真的需要你必須在你的最後一個表單元素上放一個關鍵的偵聽器,並檢查用戶是否按下了這個選項卡,那麼你將焦點放在第一個元素上。

下面是基於您的jsfiddle爲例http://jsfiddle.net/VnRBL/1/

$('#last').on('keydown', function (evt) { 
    if(evt.keyCode === 9) { // Tab pressed 
     evt.preventDefault(); 
     $('#first').focus(); 
    } 
}); 
+0

這是完美的。謝謝!注意:這個代碼片段放在'​​$(document).ready(function(){'部分。 – modle13

+0

或者你可以在'' – Gpx

相關問題