代码之家  ›  专栏  ›  技术社区  ›  Rowan

jquery/javascript在切换页面时将焦点传递给下一个元素

  •  1
  • Rowan  · 技术社区  · 15 年前

    我现在正在用jquery构建一个“标签输入”插件,我遇到了一个小的绊脚石。

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

    我的问题是当我通过界面切换时,输入后的按钮在你切换到它时获得焦点,但我想取消这个行为。我可以模糊按钮,但我宁愿按钮 传球 聚焦到下一个可聚焦元素。

    例如,我的表单中有三个输入:text-input-1、button、text-input-2。当TEXT-INPUT-1被聚焦并按TAB键时,我希望焦点跳转到TEXT-INPUT-2而不是按钮。

    能做到吗?事先谢谢。

    3 回复  |  直到 13 年前
        1
  •  3
  •   Andy E    13 年前

    这在IE中非常简单,它接受一个负整数作为tabindex属性,该属性将从tabing顺序中移除它:

    <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的超时,以再次启用该按钮。

        2
  •  1
  •   Teja Kantamneni    15 年前

    更改标签索引顺序,将TEXT-INPUT-1标签索引设为100,TEXT-INPUT-2设为200,并将按钮的任何数字设为大于200。它应该解决这个问题。

        3
  •  0
  •   Rowan    15 年前

    啊,我在Teja(+1)的帮助下回答了自己的问题。

    我需要做的就是对按钮应用一个负的标签索引!