次のような HTML は有効でしょうか?
<form action="a">
<input.../>
<form action="b">
<input.../>
<input.../>
<input.../>
</form>
<input.../>
</form>
したがって、「b」を送信すると、内部フォーム内のフィールドのみが取得されます。「a」を送信すると、「b」内のフィールドを除くすべてのフィールドが取得されます。
それが不可能な場合、この状況に対するどのような回避策がありますか?
ベストアンサー1
A.有効なHTMLでもXHTMLでもない
公式の W3C XHTML 仕様のセクション B「要素の禁止事項」には、次のように記載されています。
「フォームには他のフォーム要素を含めることはできません。」
http://www.w3.org/TR/xhtml1/#禁止事項
年長者に関してはHTML 3.2 仕様FORMS 要素のセクションでは、次のように述べられています。
「すべてのフォームは FORM 要素で囲む必要があります。 1 つのドキュメントに複数のフォームを含めることができますが、FORM 要素をネストすることはできません。」
B.回避策
フォーム タグをネストする必要なく、JavaScript を使用する回避策があります。
「ネストされたフォームを作成する方法」 (タイトルにもかかわらず、これはネストされたフォーム タグではなく、JavaScript の回避策です)。
注: スクリプトを使用して DOM を操作することで、W3C バリデーターをだましてページを通過させることはできますが、それでも HTML として合法ではありません。このようなアプローチの問題は、コードの動作がブラウザー間で保証されなくなることです (標準ではないため)。