C# 为什么可以';iframe中表单元素之间的ti选项卡?
我在一个站点中有一个页面,其中包含一个带有表单的iframe。我不能改变这一点,但我可以完全控制在父页面和iframe'd页面中运行的所有JS 我的问题是,当我在iframe的文档中聚焦一个表单字段时,切换到下一个字段会将光标直接发送到浏览器的地址栏,而不是表单中的下一个字段。在每个字段上设置tabindex没有帮助 浏览器将整个iframe本身视为页面中的一个元素(应该如此),但我想知道是否有办法捕获选项卡事件并强制焦点停留在iframe内部及其子元素 你们中有谁曾经遇到过这个问题,并且有办法解决它吗 这并不是说它会帮助你,但布局是这样的:C# 为什么可以';iframe中表单元素之间的ti选项卡?,c#,javascript,iframe,asp.net-3.5,tabindex,C#,Javascript,Iframe,Asp.net 3.5,Tabindex,我在一个站点中有一个页面,其中包含一个带有表单的iframe。我不能改变这一点,但我可以完全控制在父页面和iframe'd页面中运行的所有JS 我的问题是,当我在iframe的文档中聚焦一个表单字段时,切换到下一个字段会将光标直接发送到浏览器的地址栏,而不是表单中的下一个字段。在每个字段上设置tabindex没有帮助 浏览器将整个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属性动态地聚焦下一个字段?也许那就是我下一步冒险的地方
更新:也许我遗漏了更简单的东西。例如,上的登录框是一个iframe,我可以在这些字段之间进行制表。也许是我的JS中的其他东西导致了这个问题
更新2:我尝试将iframe文档作为独立页面加载到浏览器中,但仍然无法使用tab。我认为这是我在JS中其他地方做的事情导致文档失去焦点。我会在找到解决方案后发布
更新3:
该问题是由Ajax控件Tookit的ModalPopupXtender引起的。在调用Web服务后,我使用一个作为加载消息。它在调用回调方法时隐藏
我可以在字段之间切换,直到第一次显示和隐藏模式弹出窗口。在那之后,表格就再也不能保持它的焦点了。我正在调查原因,如果我能找到原因,我会给出答案
谢谢 我想使用ajax是不可能的
如果不是,那么您就没有iframe选项卡问题,因为您的表单是当前页面的一部分。我遇到的问题与您几乎相同。 在花了很多时间寻找解决方案后,我找到了一个网站,在这个网站上我可以发现导致我出现此问题的原因:ModalPopupXtender。 一旦我知道真正的问题是什么,就很容易找到解决办法。这是:
我希望它能帮助您像理解我一样理解这个问题。整个应用程序都由AJAX和.NET 3.5的Web服务提供支持。我唯一想更改但不能更改的是iframe的使用。有趣的是我记得之前的标签工作…你完全正确。我有一堆MPE工作得很好,只有一个有问题(它没有任何表单字段——我想知道这是否是问题的一部分)。谢谢你回来发布这个!