javascript - 聚焦选项卡索引中的下一个元素

标签 javascript jscript.net

我正在尝试根据具有焦点的当前元素将焦点移动到选项卡序列中的下一个元素。到目前为止,我还没有在我的搜索中找到任何东西。

function OnFocusOut()
{
    var currentElement = $get(currentElementId); // ID set by OnFocusIn 

    currentElementId = "";
    currentElement.nextElementByTabIndex.focus();
}

当然,nextElementByTabIndex 是实现此功能的关键部分。如何找到 Tab 序列中的下一个元素?该解决方案需要基于使用 JScript 而不是 JQuery 之类的东西。

最佳答案

我从来没有实现过这个,但我调查了一个类似的问题,下面是我会尝试的。

引用 jQuery 实现,您必须:

  1. 监听 Tab 和 Shift+Tab
  2. 知道哪些元素可以制表
  3. 了解 Tab 键顺序的工作原理

1。监听 Tab 和 Shift+Tab

监听 Tab 和 Shift+Tab 可能在网络上的其他地方有很好的介绍,所以我将跳过那部分。

2。知道哪些元素是可以制表的

要知道哪些元素可以使用 Tab 键是比较棘手的。基本上,如果一个元素是可聚焦的并且没有设置 tabindex="-1" 属性,则该元素是可制表的。那么我们必须问哪些元素是可聚焦的。以下元素是可聚焦的:

  • inputselecttextareabuttonobject 元素没有被禁用。
  • aarea 元素具有 href 或具有 tabindex 设置的数值。<
  • tabindex 设置了数值的任何元素。

此外,只有在以下情况下,元素才是可聚焦的:

  • 它的祖先都不是 display: none
  • visibility 的计算值是visible。这意味着要设置 visibility 的最近祖先的值必须为 visible。如果没有祖先设置visibility,则计算值是visible

更多细节在另一个Stack Overflow answer .

3。了解 Tab 键顺序的工作原理

文档中元素的跳格顺序由 tabindex 属性控制。如果未设置任何值,则 tabindex 实际上是 0

文档的 tabindex 顺序是:1, 2, 3, …, 0。

最初,当 body 元素(或没有元素)获得焦点时,tab 顺序中的第一个元素是最低的非零 tabindex。如果多个元素具有相同的 tabindex,则按文档顺序进行,直到到达具有该 tabindex 的最后一个元素。然后你移动到下一个最低的 tabindex 并且这个过程继续。最后,以零(或空)tabindex 结束这些元素。

关于javascript - 聚焦选项卡索引中的下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7208161/

相关文章:

javascript - 将日期从 Python 转换为 Javascript

javascript - filepicker.io 过早提交表单

javascript - 如何使用 JavaScript 制作动态下拉菜单

.net - 在node js中使用edge绑定(bind)DLL库不成功

c# - 以编程方式更改选择器的 ListView 样式

.net - 如何在 JScript.NET 中以编程方式实现 IObjectSafety

javascript - 在图像加载完成之前显示 preloader.gif

javascript - 完成后在数组开头添加项目

c# - 如何从对 JScript.NET 的 Eval 调用返回 JSON 字符串?

c# - Active Directory 中联机的计算机列表