问题标签 [tabindex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1808 浏览

c# - 在 CF .net 框架中设置 TabIndex

我有一个带有 3 个面板的表单,创建面板是因为在某些时候我需要隐藏/显示某些控件组。到现在为止,它工作得很好——直到我被要求有一种特定的方式来使用 TAB 键导航表单。

首先,我注意到 Panel 对象中没有 TabIndex 属性,最重要的是,我不想遵循嵌套导航算法,我只想设置自己的序列。

从我目前在网上阅读的内容来看,面板不可能做到这一点。我唯一的选择是将表单上的所有控件放在同一个面板中。

有什么想法吗?我不想重新安排应用程序,并开始隐藏和显示各个控件。

0 投票
2 回答
2049 浏览

c# - 为什么我不能在 iframe 中的表单元素之间切换?

我在一个站点中有一个页面,其中包含一个带有表单的 iframe。我无法更改这一点,但我可以完全控制在父页面和 iframe 页面中运行的所有 JS。

我的问题是,当我有一个集中在 iframe 文档中的表单字段时,跳到下一个字段会将光标直接发送到浏览器的地址栏,而不是表单中的下一个字段。在每个字段上设置 tabindexes 没有帮助。

浏览器将整个 iframe 本身视为页面中的元素之一(应该如此),但我想知道是否有办法捕获选项卡事件并强制焦点留在 iframe 内部及其子元素.

你们有没有人遇到过这个问题并有办法解决它?

并不是说它会对您有所帮助,但布局类似于:

一个想法是尝试捕获 iframe 中的 keydown 事件,检查 tab 或 shift+tab,然后重新聚焦 iframe,但是在失去焦点之前知道我在哪个字段上存在问题。有没有办法使用 JS 和表单字段上的 tabindex 属性动态聚焦下一个字段?也许这就是我下一步冒险的地方......

更新: 也许我缺少一些更简单的东西。例如, http://www.studentloan.com上的登录框是一个 iframe,我可以很好地在这些字段之间切换。也许我的JS中的其他东西导致了这个问题。

更新 2:我尝试将浏览器中的 iframe 文档作为独立页面加载,但我仍然无法选项卡。我认为这是我在其他地方的 JS 中所做的事情导致文档失去焦点。当我找到它时,我会发布我的解决方案。

更新 3:

该问题是由 Ajax Control Tookit 的 ModalPopupExtender 引起的。调用网络服务后,我将其用作加载消息。当回调方法被触发时它会被隐藏。

我可以在字段之间切换,直到第一次显示和隐藏 Modal 弹出窗口。之后,表单将永远无法保持焦点。我正在调查原因,如果我能找出原因,我会发布答案。

谢谢!

0 投票
2 回答
1495 浏览

apache-flex - tabIndex 在加载到 flex 应用程序中的 AS3 swf 中失败

我觉得我在这里错过了一些非常简单的东西。我正在将包含表单(由我们的一位设计师创建)的 AS3 swf 加载到 flex 应用程序中。swf 的 tabIndex 属性在单独查看 swf 时可以正常工作,但是,一旦将其加载到 flex 应用程序中:

表单字段停止接收焦点在选项卡上。我一直在寻找 flex 中的 FocusManager 以寻求某种解决方案,但我似乎找不到任何示例,而且我不完全确定我找对地方了。我是否被困在 flex 中重做这个表单?

0 投票
2 回答
4018 浏览

javascript - jquery tabindex/焦点和热键

几个浏览器中的 tabindex 似乎存在一些问题,所以我想使用 javascript/jquery 解决这些问题。特别是 FF3.5 (Mac) 根本不接受 tabindex 或关注链接。我的网站上运行着 jquery 1.3.2 和 js-hotkeys 0.7.9。

我在 1 页上有 4 个表单,我可以使用链接在它们之间切换。现在,当页面加载时,我使用它的 id 来获得焦点的链接中的 1 个。然后我希望能够在每个链接之间切换以显示每个表单。

精简后的代码如下所示:

HTML

jQuery

0 投票
2 回答
6768 浏览

vb.net - 多个面板和分组框以及标签顺序维护

我有一个由我的老板设计的 VB.NET (2005) 应用程序,它使用了 100 多个输入和显示控件(文本框、组合框等),其中许多都带有关联的标签。我的老板让我设置 tab 顺序,然后捕获按键,以便用户可以使用 enter 来导航控件。我有 2 个这样的应用程序可以使用。

对于选项卡顺序,我无法使用 View/TabOrder 功能,因为显示了太多蓝色的小 tabindex 弹出窗口,我看不到要单击的表单上的任何控件。我尝试单击“通过”弹出窗口并取得了一些成功,但它仍然没有给我想要的标签顺序。CodeSMART 附带的选项卡助手也没有给我想要的结果,所以我可以使用它。

此用户控件上的控件分布在许多组中,而这些组又分布在几个拆分容器面板中。主拆分容器中的第一个面板有 3 个主要的组合框,它们是通过工具条按钮选择的(它将所需的组合框设置为可见并将其他组合框设置为不可见。)

例子:

这些组合框中的每一个都包含更多的组合框,每个组合框包含 1 到 15 个控件。有些是只读的,但有些需要用户提供信息。所需控件的制表位设置为 true。

所以我手动将每个主组面板的 tabindexes 设置为 0 到 2。然后对于第一个 groupbox(mainpanel),我为其中包含的每个控件和 groupbox 设置 tabindex。非容器类型控件的 tabindexes 设置为 0 到 25,然后主面板上的组框(子组)是 26 到 48。然后我转到这些子组中的每个控件并为这些控件设置选项卡索引,从该组的 0 到 Control.count-1。

总之,我的标签顺序如下所示(缩写):

注意:例如,我实际上并没有输入 1.4.0 作为 tabindex,而是为控件输入 0,为子组输入 4,为主组输入 1。

然后,我根据标签顺序通过 Document Outline 面板设置 zorder。

一旦我完成了所有这些,我终于能够获得我想为主面板工作的标签顺序。

但是当我将同样的方法应用于其他 2 个分组框(materialPanel 和 haulpanel)时,这些选项卡将被完全忽略。标签在应用程序中根本不起作用。用于第 2 个到主组框(MaterialPanel 和 HaulPanel)。该应用程序是控件库,因此我在调试时使用内置的 UserTestContainer,当显示第二个 2 组框之一时,tab 键将焦点移出应用程序并进入测试容器。

在第一个组框(MainPanel)上不会发生这种情况。它工作正常。

整理这些东西花了我大约 3-4 个小时来完成繁琐的工作。由于控件的数量,此应用程序很难使用,因为任何时候对表单设计器进行更改,都需要 15-20 秒的时间来处理它。

有没有人知道这里发生了什么?

0 投票
1 回答
4246 浏览

javascript - 使用jQuery规避tabindex问题

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

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

我正在使用 jQuery 来尝试解决这个问题。这是我此时的代码:

但是,这并没有按照我想要的方式工作。启用默认 Mac 设置后,这实际上会跳过 tabindex,并完全跳过非文本/文本区域项目。例如,如果我在开机input[tabindex=2]并按下“Tab”键,我会被发送到input[tabindex=4]. 如果我打开并且和之间input[tabindex=2]有一个select框,我会被发送到。input[tabindex=2]input[tabindex=4]input[tabindex=5]

我想把input[tabindex=2]我送到input[tabindex=3], select[tabindex=3], input[type=radio][tabindex=3], 等等; 基本上任何有tabindex3。

让我知道规避这个问题的任何想法。另外,如果您知道我应该查看的任何其他系统/浏览器上的其他任何内容,请告诉我。

0 投票
1 回答
2588 浏览

c# - 设置标签索引

在 wpf 文本框有 TabIndex 属性来设置标签顺序,当控件在相同的上下文中时,这工作正常,在我的情况下,我有一个列表框,其 itemstyle 有一个文本框,并且样式是根据触发器动态分配的。现在我该如何做 tabindexing 以便当我 tab 索引从第一个 listboxitem 中的文本框移动到下一个 listboxitem 中的文本框或组合框或按钮以及进一步的 listboxitem 时。

谢谢

阿尔文德

0 投票
1 回答
1645 浏览

jquery - 表索引和Firefox 和 IE 不同

渲染时:

你得到一个盒子和一个按钮,对吧?(至少在 Firefox 和 IE 中。)

一方面,在 Firefox 中,您只能通过 tab 键(聚焦)按钮,但在 IE 中,您可以通过 tab 键(聚焦)框和按钮。

另一方面,我想让 IE 表现得像 Firefox,我的意思是,我需要摆脱框焦点。想想用户在键盘上导航。

(原因是因为<input type="file" />将不可见。相反,<div>带有背景图像的 a 将假装是<input type="file" />。)

0 投票
1 回答
432 浏览

asp.net - ASP.NET 中选项卡索引的基类

我正在尝试创建一种很好的通用方法来设置 ASP.NET 应用程序页面中许多元素的选项卡索引(使用 VB.NET)。结果,我想知道是否有一个基类控制实现 TabIndex 属性的继承,因此我可以生成以下代码:

谢谢您的帮助。

注意我不能使用 View -> Tab Order;很遗憾。

0 投票
1 回答
1270 浏览

javascript - 无法在 IE8 中多次设置 tabIndex

我有一个大型 HTML 数据输入表,实现为输入字段的大型矩阵。我正在尝试实现一个基于 JavaScript 的功能,该功能可以在逐行和逐列制表符顺序之间动态切换。

我使用的方法似乎只在 IE8 中工作“一次”。也就是说,一旦使用 JavaScript 设置了选项卡索引,任何后续更改都将被忽略 - 并且选项卡排序恢复到其默认状态。

表输入具有如下类名:

我的 JavaScript 看起来像这样:

实际上,如果我在页面加载时调用,我似乎只能按列进行选项卡setTabOrder(true);,即:

任何想法为什么这不能像我期望的那样工作?