【发布时间】:2011-03-05 21:14:09
【问题描述】:
情况:
我有一个网页,它打开模式窗口(灯箱),其中包含用户可以输入数据的表单。用户通常使用键盘导航,从一个字段切换到下一个字段。
问题:
当模式窗口打开时,只有窗口处于活动状态,页面的其余部分不能使用鼠标访问,但可以通过在模式窗口中跳出来访问元素。
问题:
如何通过使用选项卡按钮将移动限制在表单窗口中的元素上?
我唯一能想到的是使用 Javascript 在打开模态窗口时在所有表单元素(和其他可聚焦元素)上设置 tabindex=-1,然后在模态窗口打开时将 tabindex 值设置回它们以前的值窗口关闭。
有没有更简单/更好的方法?
【问题讨论】:
-
虽然3年过去了,你的问题解决了吗?如果可以,可以在这里分享一下吗?
-
我找不到比我在问题中提到的更好的解决方案:只需遍历模态窗口之外的所有元素并将它们的 tabindex 设置为 -1。困难在于您需要跟踪您设置的元素及其原始 tabindex 值,以便在关闭模式窗口后可以恢复原始值。它运行良好,使用 jQuery 实现。唯一的问题是在 IE 中,页面上有数百个具有 tabindex 属性的元素,尽管较新版本的 IE 可能更好。解决方案就是不要在这些页面上运行 IE。
标签: javascript html tabindex modal-popup