Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么可以';iframe中表单元素之间的ti选项卡?_C#_Javascript_Iframe_Asp.net 3.5_Tabindex - Fatal编程技术网

C# 为什么可以';iframe中表单元素之间的ti选项卡?

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内部及其子元素 你们中有谁曾经遇到过这个问题,并且有办法

我在一个站点中有一个页面,其中包含一个带有表单的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工作得很好,只有一个有问题(它没有任何表单字段——我想知道这是否是问题的一部分)。谢谢你回来发布这个!