1. ホーム
  2. html

[解決済み] html フォームの中に別の html フォームがあるのは有効ですか?

2022-03-15 21:39:58

質問

以下のようにするのは有効なhtmlでしょうか。

<form action="a">
    <input.../>
    <form action="b">
        <input.../>
        <input.../>
        <input.../>
    </form>
    <input.../>
</form>

つまり、"b" を送信すると、内側のフォーム内のフィールドのみが取得されます。a"を送信すると、"b"のフィールドを除いたすべてのフィールドが取得されます。

もし不可能であれば、この状況に対してどのような回避策があるでしょうか?

解決方法は?

A. 有効なHTMLまたはXHTMLではありません。

W3Cの公式XHTML仕様では、セクションBの "要素の禁止事項"に、次のように記載されています。

form は他の form 要素を含んではいけません。

http://www.w3.org/TR/xhtml1/#prohibitions

古いものでは HTML 3.2仕様 , の項では、FORMS要素について次のように記述されています。

すべてのフォームは FORM 要素を使用します。複数の フォームを使用することができますが FORM要素を入れ子にすることはできません。

B. ワークアラウンド

フォームタグをネストさせることなく、JavaScriptを使用した回避策があります。

ネストされたフォームを作成する方法。 (タイトルにもかかわらず、これは ではなく を入れ子にしたもので、JavaScriptによる回避策です)。

このStackOverflowの質問に対する回答

注意 スクリプトでDOMを操作することで、W3C Validatorを騙してページを通過させることはできますが、それはまだ合法的なHTMLではありません。このようなアプローチを用いる場合の問題は、あなたのコードの動作がブラウザ間で保証されなくなることです。(標準ではないので)