通常,當用戶訪問網頁並按下鍵盤上的TAB按鈕時,選擇將從頁面開始時的一個元素移動到另一個元素。僅在按下Tab按鈕時在兩個文本區之間切換
我正在尋找一種解決方案,通過按下鍵盤上的Tab鍵在初始焦點上加載網頁時的第一個文本區域之間切換兩個特定的文本區域?對於此TAB鍵按下事件,頁面上的所有其他元素都必須被忽略。
我該如何實現這一目標?
謝謝你的幫助!
=更新=
我設法使其在Firefox 12.0下工作。 IE和Chrome無法正常工作。 Asuming文本區域ID被#ICCID和#MSISDN,Jquery的看起來像這樣:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$(document).ready(function() {
$("#ICCID").focus();
});
var $inp = $('.cls');
$inp.bind('keydown', function(e) {
var key = e.which;
if (key == 9) {
e.preventDefault();
var nxtIdx = $inp.index(this) + 1;
$(".cls:eq(" + nxtIdx + ")").focus();
//Simulate Enter after TAB
var textInput = $("#MSISDN").val();
var lines = textInput .split(/\r|\r\n|\n/);
if (lines > 1) {
$("#MSISDN").on("keypress", function(e) {
if (e.keyCode == 9) {
var input = $(this);
var inputVal = input.val();
setTimeout(function() {
input.val(inputVal.substring(0,inputVal.length) + "\n");
}, 1);
}
});
}
}
if (key == 9) {
e.preventDefault();
var nxtIdx = $inp.index(this) - 1;
$(".cls:eq(" + nxtIdx + ")").focus();
//Simulate Enter after TAB
$("#ICCID").on("keypress", function(e) {
if (e.keyCode == 9) {
var input = $(this);
var inputVal = input.val();
setTimeout(function() {
input.val(inputVal.substring(0,inputVal.length) + "\n");
}, 1);
}
});
}
});
});
</script>
不要!請!有些人需要能夠使用標籤將其他元素集中在頁面中!不是每個人都可以使用鼠標。 – Quentin
@Quentin。或者想要你的鼠標(就像我......) – gdoron
只是爲textarea定義了兩個連續的tabindex屬性,但是避免了爲每個其他元素禁用焦點 – fcalderan