在一个表单的输入之间进行TAB键循环

时间:2014-07-09 14:07:07

标签: javascript html browser

我在一个页面上有许多<form>元素,如2-3个表单。如何在一个表格的输入之间循环进行TAB键切换,而不是在到达一个表格的最后一个表格时转到下一个表格?

以下是两种形式http://jsfiddle.net/VnRBL/的小提琴。

3 个答案:

答案 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">

非常直接的实施。