fixedpoint.jp - Nested form elements in (X)HTML




Nested form elements in (X)HTML

XHTML 1.0によると HTML の form 要素は入れ子にできません: http://www.w3.org/TR/xhtml1/#prohibitions

一方、Web アプリケーションで form によってユーザから入力を受け付ける場合、入れ子を許すと便利なケースが考えられます(これらのケースは Ajax を使って同じような効果を得ることができるものもあります);

対象になるデータのツリー構造を反映する
入力をそのままデータとして利用する場合、親 form で親ノード、子 form で子ノードを表すことができます。
対象になるデータの一部を論理的な単位としてまとめる
親 form 要素に含まれる一部の input 要素たちが関連しており、送信されたデータの処理をこの単位で行う場合、子 form としてまとめることで扱いやすくなります。例えば validation で関連する input 要素たちをまとめることができます。
複数のデータの送信先を指定する
子 form ごとに別々の action を指定すれば、さまざまな組み合わせの処理を1つの form から行うことができます。

そこで登場するのが、まだドラフト段階の HTML 5 です。この中で form の仕様については Web Forms 2.0 が元になる見通しです。Web Forms 2.0 の現在の版は XHTML での form のネストを許しており、それぞれの要素ごとにデータが送信されるかどうかを制御することになっています: http://www.whatwg.org/specs/web-forms/current-work/#nested-form-elements


© 2006-2008 Takeshi Abe