当包含表单时,html段落标记在firefox中自动关闭

Arg*_*ron 2 html forms tags firefox paragraph

我在Firefox中偶然发现了一个奇怪的行为.我有一个动态创建的文本,我已经插入了一个包含链接的表单元素,以便能够通过post方法传递参数.理想情况下,它应该只与文本一起流动,看起来像一个普通的锚点.但是,虽然它通常在IE中显示,但Firefox会在表单之前终止段落,这会插入不需要的换行符.有没有人知道为什么会这样,并有一个解决方法/替代解决方案?

IE中的结果(ok):

<p class="article" >This is my paragraph and here goes my 
<form style="display: inline" name="link_form" action="link.html" method="post">
<input type="hidden" name="lnk_id" value="1" /><a class="link" href="#" onclick="link_form.submit()">link</a></form>**</p>**
Run Code Online (Sandbox Code Playgroud)

Firefox(ko)中的结果:

<p class="article" >This is my paragraph and here goes my**</p>** 
<form style="display: inline" name="link_form" action="link.html" method="post">
<input type="hidden" name="lnk_id" value="1" /><a class="link" href="#" onclick="link_form.submit()">link</a></form>
Run Code Online (Sandbox Code Playgroud)

提前致谢

Cap*_*ule 5

这是完全正常的,P标签只能包含内联元素,而不是表单的情况.(见http://www.w3.org/TR/html401/struct/text.html#h-9.3)

由于HTML4规范允许您不关闭标记,因此Firefox假定您忘记在表单开始之前关闭P标记,因此在使用Firebug检查DOM时可以看到结束标记.

  • 是的,IE错了.将段落放在表单中,而不是相反(使用您设置的提交按钮看起来像链接,而不是顶部有一些JS的断开链接).如何*显示元素*不会改变它**的内容,因此不会改变HTML中允许存在的位置. (2认同)