HTML-тег абзаца автоматически закрывается в Firefox при содержании формы - PullRequest
2 голосов
/ 15 марта 2011

Я наткнулся на странное поведение в Firefox. У меня есть динамически созданный текст, в который я вставил элемент формы, включающий ссылку, чтобы иметь возможность передавать параметры через метод post. В идеале, он должен просто соответствовать тексту и выглядеть как обычный якорь. Однако, хотя он нормально отображается в IE, Firefox завершает абзац непосредственно перед формой, которая вставляет нежелательный разрыв строки. У кого-нибудь есть идея, почему это происходит, и есть альтернативное решение?

Результат в IE (ок):

<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>**

Результат в 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>

Заранее спасибо

1 Ответ

5 голосов
/ 15 марта 2011

Это совершенно нормально, тэг P может содержать только встроенные элементы, что не относится к форме.(см. http://www.w3.org/TR/html401/struct/text.html#h-9.3)

Поскольку спецификации HTML4 позволяют вам не закрывать теги, Firefox предполагает, что вы забыли закрыть свой тег P перед началом формы, поэтому закрывающий тег вы можете увидеть при проверке DOM с помощьюFirebug, например.

...