使用javascript设置选项卡顺序

使用javascript设置选项卡顺序,javascript,html,Javascript,Html,我有一个有多个表单的页面。我使用Mootools滑动选项卡,这样菜单上的每个按钮都可以滑动到下一个窗体。从技术上讲,有3个表单位于同一HTML页面上。请参见中的技术示例 我的问题是,当用户按下tab键,然后按tab键进入我想要的最后一个字段,这样它就会返回到第一个字段。这样用户就不会意外地转到下一个表单。用户最终将围绕相同的表单字段进行循环。为了让用户访问下一个表单,他们使用菜单,因此我不希望他们能够使用tab键访问下一个表单 我知道使用“tabindex”设置选项卡顺序,但这无助于我让用户返回

我有一个有多个表单的页面。我使用Mootools滑动选项卡,这样菜单上的每个按钮都可以滑动到下一个窗体。从技术上讲,有3个表单位于同一HTML页面上。请参见中的技术示例

我的问题是,当用户按下tab键,然后按tab键进入我想要的最后一个字段,这样它就会返回到第一个字段。这样用户就不会意外地转到下一个表单。用户最终将围绕相同的表单字段进行循环。为了让用户访问下一个表单,他们使用菜单,因此我不希望他们能够使用tab键访问下一个表单

我知道使用“tabindex”设置选项卡顺序,但这无助于我让用户返回该表单的第一个字段


有没有关于如何使用javascript实现这一点的想法?

您可以通过事件侦听器实现这一点:

$$(".foo").addEvent("click", function(e) {
  if (e.keyCode == 9) new Event(e).stop();
  $("#myfield").focus();
});

您可以通过事件侦听器执行此操作:

$$(".foo").addEvent("click", function(e) {
  if (e.keyCode == 9) new Event(e).stop();
  $("#myfield").focus();
});

我将通过使表单中的字段不可见而禁用
来实现这一点,这样浏览器就知道跳过它们,而不管导航机制如何(想想辅助功能)。

我将通过使表单中的字段不可见而禁用
而实现这一点,这样浏览器就知道跳过它们,不管导航机制如何(想想辅助功能)。

这是jQuery解决方案吗?如果是这样的话,我觉得它不正确。不,它使用MooTools。至少我记得两年前我编写MooTools时的情景。啊,我忽略了OP正在使用MooTools这句话。我不太了解这个框架,但是是否真的有必要发布一个
新事件来阻止当前事件的传播?您不应该使用
键下
事件而不是
单击
?谢谢您的回复。我对JS和Mootools相当陌生,只是想知道您是否有使用它的例子。我假定.foo类放在最后一个输入字段上,即第一个输入字段上的#myfield id?我使用的是mootools 1.2.4,实现它的运气不太好。我相信这真的很简单。我还尝试使用$('input-element').addEvent('keydown',function(event){if(event.code==9&&!event.shift){return false;}});但是没有成功……这是jQuery解决方案吗?如果是这样的话,我觉得它不正确。不,它使用MooTools。至少我记得两年前我编写MooTools时的情景。啊,我忽略了OP正在使用MooTools这句话。我不太了解这个框架,但是是否真的有必要发布一个
新事件来阻止当前事件的传播?您不应该使用
键下
事件而不是
单击
?谢谢您的回复。我对JS和Mootools相当陌生,只是想知道您是否有使用它的例子。我假定.foo类放在最后一个输入字段上,即第一个输入字段上的#myfield id?我使用的是mootools 1.2.4,实现它的运气不太好。我相信这真的很简单。我还尝试使用$('input-element').addEvent('keydown',function(event){if(event.code==9&&!event.shift){return false;}});但没有成功……事实上,在我看来,这是最好的解决方案:如果用户不能“标记”到第二个表单,他们可以始终指向并单击那里。事实上,在我看来,这是最好的解决方案:如果用户不能“标记”到第二个表单,他们可以始终指向并单击那里。