javascript - 将光标移动到 Enter 上的下一个元素,跟踪 tabindex

标签 javascript jquery

我正在使用以下代码移动到下一个元素。除了 tabindex=-1 之外,代码工作正常。它不会跳过 tabindex 设置为 -1 的元素。

        $('body').on('keydown', 'input, select', function(e) {
            if (e.key === "Enter") {
                var self = $(this), form = self.parents('form:eq(0)'), focusable, next;
                focusable = form.find('input,a,select,button,textarea').filter(':visible');
                next = focusable.eq(focusable.index(this)+1);
                if (next.length) {
                    next.focus();
                } else {
                    form.submit();
                }
                return false;
            }
        });

我一直在寻找解决方案,但找不到。 任何人都可以帮忙吗?

最佳答案

您专门关注下一个元素,不让浏览器处理它。因此 tabindex=-1 不起作用。

要使用您在 HTML 中指定的 tabindex,您还必须在 Javascript 中指定它( :not([tabindex="-1"]) ):

 focusable = form.find('input,a,select,button,textarea').filter(':not([tabindex="-1"]):visible');

关于javascript - 将光标移动到 Enter 上的下一个元素,跟踪 tabindex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61040520/

相关文章:

javascript - 在rails表单中填写数据时如何在英语和其他语言之间切换

javascript - 在 Javascript 中更改背景颜色

javascript - Jade 选择字段填充数据

javascript - jQuery 返回 false 时不停止滚动

javascript - 获取以 mb 或 kb 为单位的文件大小

jquery - 简单的 html/css 类谜题

javascript - 将相同的功能添加到许多元素(使用js原型(prototype)?)

javascript - 为什么我用IE重新上传时我的文件没有被修改?

jQuery 两个函数,相同的结果,相同的元素

javascript - 如果我使用 jQuery 或 javascript 在一个搜索栏中输入相同的单词两次,请向我发送一条消息