繁体   English   中英

为什么我无法在iframe中的表单元素之间切换?

[英]Why can't I tab between form elements within an iframe?

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

我的问题是,当我将一个表单字段集中在iframe的文档中时,跳至下一个字段会将光标直接移到浏览器的地址栏,而不是表单中的下一个字段。 在每个字段上设置tabindexes都无济于事。

浏览器将整个iframe本身视为页面中的元素之一(应该如此),但是我想知道是否存在一种方法来捕获选项卡事件并迫使焦点停留在iframe及其子元素中。

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

并不是对您有帮助,但是布局是这样的:

+-------------------------------------------+
| Parent page                               |
|         +-------------------------------+ |
|  N      | iframe                        | |
|  a      |                               | |
|  v      | Has about 50 fields that I'd  | |
|  i      | like to be able to tab between| |
|  g      |                               | |
|  a      | But I can't! Help!            | |
|  t      |                               | |
|  i      +-------------------------------+ |
|  o                                        |
|  n                                        |
+-------------------------------------------+

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

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

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

更新3:

该问题是由Ajax控件Tookit的ModalPopupExtender引起的。 调用Web服务后,我将其中一个用作加载消息。 当触发回调方法时,它将被隐藏。

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

谢谢!

我和你几乎有同样的问题。 经过大量时间寻找解决方案后,我找到了这个网站,在这里我可以找到导致此问题的原因:modalpopupextender。 一旦我知道真正的问题是什么,就很容易找到解决方案。 在这里是: http : //forums.asp.net/t/1191142.aspx

我希望它能像您对我一样帮助您理解此问题。

我想象使用ajax是不可能的吗?

如果不是,那么您就没有iframe制表问题,因为您的表单是当前页面的一部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM