2011-03-15 6 views
2

Firefoxで奇妙な動作が発生しました。私は動的に作成されたテキストを持っています。このテキストには、postメソッドを介してパラメータを渡すためにリンクを含むフォーム要素を挿入しています。理想的には、それはテキストだけで流れ、通常のアンカーのように見えるべきです。 しかし、IEでは通常表示されますが、Firefoxはフォームの直前の段落を終了させ、望ましくない改行を挿入します。 これがなぜ起こり、回避策/代替ソリューションがあるのか​​誰も考えていますか? IEでフォームを含むときにhtml段落タグが自動的にFirefoxで閉じる

結果(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>** 

結果、Firefoxで(KO):それは完全に正常、Pタグのみをインラインで含めることができます

答えて

4

事前に

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

感謝これはフォームの場合ではありません。 HTML4の仕様は、あなたがタグを閉じないようにできるようにするので、Firefoxがために、あなたは、あなたのフォームの開始前のFirebugとDOMを検査する際にあなたが見ることができるので、終了タグを自分のPタグを閉じるのを忘れ前提としてい

http://www.w3.org/TR/html401/struct/text.html#h-9.3を参照してください)例。

+0

お返事ありがとうございます。 IEは間違っていると言いますか?どのように私はこれを回避することができる任意のアイデア? 「表示:インライン」に結果はありませんか? – Argoron

+1

@Argo:回避策: 'p'タグを使用しないでください。代わりに 'div'を試してみてください。 – thirtydot

+2

はい、IEは間違っています。段落をフォームの中に入れて、別の方法ではないようにします(上にいくつかのJSとのリンクではなく、リンクのように見えるスタイルの送信ボタンを使用します)。要素がどのように*表示されているのか*は変更されないため、HTMLに存在することが許される場所は変更されません。 – Quentin

関連する問題