我目前正在使用 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/