【问题标题】:Chrome is eating my first inner <form> -- why?Chrome 正在吃掉我的第一个内部 <form> —— 为什么?
【发布时间】:2012-03-30 17:16:22
【问题描述】:

感谢 ASP.NET,我学会了在

标记中摆脱
标记的麻烦。我设置了一个我认为不起作用的简单 DOM:
<form id="Superform" action="javascript: return false;">
<form id="Subform1" action="javascript: return false;">
    form1
</form>
<form id="Subform2" action="javascript: return false;">
    form2
</form>
</form>

在这个例子中,IE8 似乎可以正常工作,但是 Chrome (18.0.1025.142 beta-m) 似乎让Subform1 消失了。有谁知道为什么?这是 Chrome/webkit 错误吗?我做了一个 jsFiddle 来测试它——如果你手边有其他浏览器,我也很好奇这些结果。

试试http://jsfiddle.net/weQmk/9/的例子。

在 IE8 中我得到:

Forms my browser sees: 
Superform
Subform1
Subform2

但在 Chrome 中:

Forms my browser sees:
Superform
Subform2

【问题讨论】:

标签: javascript google-chrome webkit


【解决方案1】:

表单不能以这种方式嵌套。在遇到关闭的&lt;/form&gt; 标记时,第一个打开的表单被关闭。

这个小提琴也说明了这一点:http://jsfiddle.net/weQmk/11/

【讨论】:

  • 好的(虽然这在 ASP.NET 领域很烦人,你的整个世界都被一个表单包裹着)但这并不能完全解释为什么 Chrome 会让一个表单消失......为什么不它只是关闭 Superform 然后编写 Subform?
  • 我错了(原评论:“它现在似乎工作了(Chrome v42)。”)。这似乎只是因为我后来用另一种表格包装了我的表格。这至少有效。还有什么也有效:表单控件仅将自己注册到其父表单(即它的行为与直觉预期的一样)。
猜你喜欢
  • 2022-10-04
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多