繁体   English   中英

使用jQuery来规避tabindex问题

[英]Using jQuery to circumvent tabindex problems

我正在尝试控制我的表单以及用户如何通过表单元素的tabindex属性与它们进行交互。 我的所有元素都指定了tabindex ,我希望这个值得到尊重并正确使用。

我目前正在开发Mac / Firefox,我知道默认的Mac系统设置,它将制表符切换设置为仅输入元素和列表。 但是,我想在任何系统/浏览器上覆盖此以及可能妨碍此操作的任何其他设置。

我正在使用jQuery试图解决这个问题。 这是我的代码:

$(":input").keypress(function(e){
    if (e.which == 0)
    {
        tindex = parseInt($(this).attr("tabindex")) + 1;
        $(":input[tabindex='" + tindex + "']").focus();
    }
});

但是,这不符合我的要求。 启用默认的Mac设置时,这实际上会跳过tabindex,并完全跳过非text / textarea项目。 例如,如果我input[tabindex=2]并按“Tab”键,我就会被input[tabindex=4] 如果我在input[tabindex=2]并且input[tabindex=2]input[tabindex=4]之间有一个select框,我将被发送到input[tabindex=5]

我想input[tabindex=2]来发送input[tabindex=3]select[tabindex=3]input[type=radio][tabindex=3]等; 基本上没有任何tabindex为3。

让我知道任何想法来解决这个问题。 如果您知道我应该关注的任何其他系统/浏览器上的任何其他内容,请告诉我。

添加e.preventDefault(); 到你的按键事件处理程序。 这将阻止浏览器对此事件执行其默认操作。 如果链接放置在单击处理程序中,这也将阻止浏览器关注链接。

文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM