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

标签 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];
    }

最佳答案

将所有隐藏控件放在表单顶部,以便用户只能通过“Tab”键切换到其余可见控件。

您可以通过将控件的 tabIndex 设置为 -1 来从 Tab 键顺序中排除该控件

<input type="text" name="username" tabIndex="-1" />

<罢工>

关于javascript - 在javascript中使用回车键作为选项卡时如何跳过隐藏字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24561240/

相关文章:

javascript - 我希望在默认音频播放器中播放完歌曲后出现模式弹出声音,任何人都可以帮助我编写代码

javascript - 在 Javascript 之前加载 CSS

javascript - AngularJS:向 ng-repeat 内的图像添加切换功能

javascript - 即使 jQuery 是第一个导入的脚本,也未捕获 ReferenceError : jQuery is not defined,

.net - 如何以编程方式获取 ASP.NET 临时目录?

javascript - 为什么QML Image占用这么多内存?减慢应用程序

javascript - 如何使用 Javascript 逐行读取 HTML 文件并为每一行返回 document.write() ?

javascript - 如何向 uib-timepicker 定义当前时间值

ASP.NET 将多个页脚行添加到 Gridview

ASP.NET 身份定制和 ADO.NET