2010-12-20 62 views
0

我有一个拥有多个表单的页面。我正在使用Mootools滑动选项卡,以便菜单上的每个按钮都可以滑动到下一个窗体。有三种技术上在同一个HTML页面上的表单。在http://creativepony.com/archive/demos/sliding-tabs/用javascript设置tab键

我的问题是,当用户按Tab键和标签到最后一个字段我想要Tab键顺序,因此它回到第一个字段。这样用户不会意外地选中下一个表单。用户最终会围绕相同的表单域进行循环。对于用户到达下一个表格,他们使用菜单,所以我不希望他们能够选项卡到下一个表格。

我知道用'tabindex'设置tab键顺序,但是这并不能帮助我让用户返回到表单的第一个字段。

任何想法如何实现这与JavaScript?

回答

1

您可以通过事件侦听器做到这一点:

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

这是一个jQuery解决方案吗?如果是这样,它看起来不正确。 – 2010-12-20 15:52:24

+0

不,它使用MooTools。至少我在2年前编写MooTools时能记得的东西。 – doque 2010-12-20 16:00:32

+1

啊,我忽略了OP使用Mootools的说法。我不太了解这个框架,但是真的有必要发布一个“新事件”来阻止当前的传播?你不应该使用'keydown'事件,而不是'click'? – 2010-12-20 16:19:24

2

我会通过在不可见disabled形式的领域做到这一点,所以浏览器知道要跳过他们,无论导航机制(认为辅助功能)。

+0

事实上,这看起来像我最喜欢的解决方案:如果用户不能'选择'他们的方式到第二种形式,他们总是可以指向并单击那里。 – 2010-12-20 19:17:30