在javascript中使用enter键作为选项卡时,如何跳过隐藏字段

时间:2014-07-03 18:49:45

标签: javascript html asp.net internet-explorer-11

我有一个正在为IE11开发的asp.net Web应用程序,我试图让Enter键功能与Tab键相同。大部分时间它使用下面的代码工作正常。但是,如果存在禁用的字段或隐藏的div中,则Enter键不会前进到下一个启用和可见字段。

这就是我所拥有的:

我的主div上有以下内容,因此它适用于所有文本框: 的onkeydown =“changeEnterToTab()

函数正常触发,但getNextElement函数返回未显示或禁用的字段。

有什么想法吗?

    function changeEnterToTab() {
        var node = (event.target) ? event.target : ((event.srcElement) ? event.srcElement : null);
        if ((event.keyCode == 13) && ((node.type == "text") || (node.type == "radio"))) {
            getNextElements(node).focus();
            return false;
        }
    }

    function getNextElement(field) {
        var form = field.form;
        for (var e = 0; e < form.elements.length; e++) {
            if (field == form.elements[e]) {
                e++;
                break;
            }
        }
        e++;
        debugger;
        while (form.elements[e % form.elements.length].type == "hidden") {
            e++;
        }
        return form.elements[e % form.elements.length];
    }

2 个答案:

答案 0 :(得分:0)

将所有隐藏的控件放在表单的顶部,这样用户只能“选项卡”到其余的可见控件。

您可以通过将 tabIndex 设置为 -1

从选项卡顺序中排除控件
<input type="text" name="username" tabIndex="-1" />

<击>

答案 1 :(得分:0)

我没有找到这个问题的实际答案,但我通过完全重新排序TabIndex以处理隐藏/禁用控件的实例来解决这个问题。

感谢大家的想法。