我正在使用Telerik控件,特別是數值文本框,您可以在其中設置上下箭頭以在文本框中遞增/遞減值。我需要設置標籤順序移動到下一個字段,但由於上下箭頭上有一個按鈕,瀏覽器將先通過這些按鈕,然後移動到下一個文本框字段。如何在jQuery中設置Tab鍵順序
如何設置jquery檢測下一個可見的文本框/下拉菜單/等輸入字段,並移動到按下Tab鍵而不是通過附近的按鈕運行?
我正在使用Telerik控件,特別是數值文本框,您可以在其中設置上下箭頭以在文本框中遞增/遞減值。我需要設置標籤順序移動到下一個字段,但由於上下箭頭上有一個按鈕,瀏覽器將先通過這些按鈕,然後移動到下一個文本框字段。如何在jQuery中設置Tab鍵順序
如何設置jquery檢測下一個可見的文本框/下拉菜單/等輸入字段,並移動到按下Tab鍵而不是通過附近的按鈕運行?
實際上,您可以使用HTML屬性tabindex
對頁面上的所有輸入按數字順序升序進行設置。因此,跳過這些按鈕,從頁面上的第一個輸入開始分配tabindex=1
,第二個輸入tabindex=2
,相應地設置後續輸入。當你到達你想要跳過的按鈕時,不要給它們一個tabindex值,或者在列表的末尾給它們索引。
$(function() {
var tabindex = 1;
$('input,select').each(function() {
if (this.type != "hidden") {
var $input = $(this);
$input.attr("tabindex", tabindex);
tabindex++;
}
});
});
+1清潔解決方案 – diEcho 2012-08-17 09:38:33
你也可以試試這個
$('input,select :visible').each(function (i) { $(this).attr('tabindex', i + 1); });
有時,當你正在生成的jQuery代碼或重新排序元素的解決辦法是不使用的TabOrder但只是確保你把元素在DOM中正確的順序。看下面的例子。
JQuery code::
var anchorB = jQuery('#anchorB');
jQuery('#divB').remove();
anchorB.insertBefore("#anchorC");
Before::
<a id="anchorB" href="#">Anchor B</a>
<a id="anchorA" href="#">Anchor A</a>
<a id="anchorC" href="#">Anchor C</a>
After::
<a id="anchorA" href="#">Anchor A</a>
<a id="anchorB" href="#">Anchor B</a>
<a id="anchorC" href="#">Anchor C</a>
不需要。找出標籤順序是一個工作的地獄,最好留給大衣。此外,如果您不指定標籤索引,它將自動獲取一個值。要真正抑制Tab鍵順序的元素,請爲其指定一個減號爲1的Tab鍵索引。要爲Tab鍵順序啓用一個元素,並讓瀏覽器決定最佳索引,請爲其選項卡索引爲零。 – 2012-09-27 13:03:28