我在一个页面上有许多<form>
元素,如2-3个表单。如何在一个表格的输入之间循环进行TAB键切换,而不是在到达一个表格的最后一个表格时转到下一个表格?
以下是两种形式http://jsfiddle.net/VnRBL/的小提琴。
答案 0 :(得分:4)
首先,你不应该这样做,因为它不是用户所期望的。
如果你真的需要在最后一个表单元素上放置一个键监听器,并检查用户是否按下了标签,那么你将焦点放在第一个元素上。
以下是基于您的JsFiddle http://jsfiddle.net/VnRBL/1/
的示例$('#last').on('keydown', function (evt) {
if(evt.keyCode === 9) { // Tab pressed
evt.preventDefault();
$('#first').focus();
}
});
答案 1 :(得分:2)
我相信这就是你正在寻找的东西
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
答案 2 :(得分:-1)
<element tabindex="number">
非常直接的实施。