javascript - jQuery/Javascript 将焦点传递给下一个元素,同时在页面中使用 tab 键

标签 javascript jquery accessibility

我目前正在使用 jQuery 构建一个“标签输入”插件,但遇到了一个小障碍。

我在表单中的文本输入后添加了一个按钮,并使用 javascript 为该按钮提供功能。单击按钮(或在输入中按下返回)时,输入的值将添加到标签列表中。然后清除输入并重新聚焦。

当我在界面中切换时出现问题,当您切换到输入后的按钮时,它会获得焦点,但我想取消此行为。我可以模糊按钮,但我更希望按钮将焦点传递到下一个可聚焦元素。

例如我的表单中有三个输入:text-input-1、button、text-input-2。当 text-input-1 获得焦点并且我按下 Tab 键时,我希望焦点跳转到 text-input-2 而不是按钮。

这能做到吗?提前致谢。

最佳答案

这在 IE 中很容易,它接受 tabIndex 属性的负整数,这会将它从 Tab 键顺序中删除:

<input type="button" tabindex="-1" value="Can't tab to me!" />

这不是 HTML 4.01 specification for tabindex 的一部分, 它只允许 0 到 32767 之间的整数。但是,它HTML 5 drafts 中指定的并在大多数主流浏览器中得到支持。

在不支持它的浏览器中,我能想到的最简单的方法是等待输入的 onkeydown 事件并检查 Tab 键。如果按下 tab 键,则禁用该按钮并设置一个间隔长度为 0 的超时以再次启用该按钮。

关于javascript - jQuery/Javascript 将焦点传递给下一个元素,同时在页面中使用 tab 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2156094/

相关文章:

javascript - 在 JavaScript 中将点击更改为按键

javascript - 在D3中绘制不同半径的饼图(将力网络与饼图结合)

javascript - Ext JS 布局错误

android - 我可以在运行时全局增加所有 UI 小部件的文本大小吗?

javascript - 使用 Captionator 从 HTML5 <video> 的 <track> 中读取元数据

javascript - 如何从另一个域加载cookie

javascript - jQuery 修改 DOM 内元素的内联 CSS

php - JQuery 表格分页(MySQL + PHP)

jquery - 从文本框中删除自动搜索并在搜索按钮上搜索

html - 内容和表现分离的实际意义是什么?