--- title:
slug: Web/HTML/Element/form tags: - HTML - HTML フォーム - 'HTML:フローコンテンツ' - 'HTML:知覚可能コンテンツ' - Reference - ウェブ - フォーム - 要素 translation_of: Web/HTML/Element/form ---
{{HTMLRef}}

HTML の <form> 要素は、ウェブサーバーに情報を送信するための対話型コントロールを含む文書の区間を表します。

{{EmbedInteractiveExample("pages/tabbed/form.html", "tabbed-standard")}}

<form> 要素には、 CSS の {{cssxref(':valid')}} および {{cssxref(':invalid')}} 疑似クラスを使用して整形することが可能です。

コンテンツカテゴリ フローコンテンツ, 知覚可能コンテンツ
許可されている内容 フローコンテンツ。ただし、<form> 要素の中に別の <form> 要素を内包することは許可されていません。
タグの省略 {{no_tag_omission}}
許可されている親要素 フローコンテンツを受け入れるすべての要素
許可されている ARIA ロール {{ARIARole("group")}}, {{ARIARole("presentation")}}
DOM インターフェイス {{domxref("HTMLFormElement")}}

属性

この要素にはグローバル属性があります。

{{htmlattrdef("accept")}} {{HTMLVersionInline(4)}} {{obsolete_inline}}
サーバーが受け付けるコンテンツ型のコンマ区切りリスト。
使用上のメモ: この属性は HTML5 の仕様から削除されており、すでに使用不可となっています。代わりに個々の {{HTMLElement("input")}} 要素の {{htmlattrxref("accept", "input")}} 属性を使用してください。
{{htmlattrdef("accept-charset")}}
サーバーが受け入れる文字エンコーディングのリスト。リストはスペースまたはコンマで区切ることができます。ブラウザーは、それらがリストされている順序を優先順位として使用します。既定値である予約語 "UNKNOWN" は、 form 要素を含む文書のエンコーディングと同じであることを示します。
以前のバージョンの HTML では、さまざまな文字エンコーディングをスペースまたはコンマで区切ることができました。これは HTML5 ではあてはまらず、スペースだけが適切です。
{{htmlattrdef("action")}}
フォーム経由で送信された情報を処理するプログラムの URI。この値は {{HTMLElement("button")}}, <input type="submit">, <input type="image"> の {{htmlattrxref("formaction", "button")}} 属性によって上書きすることが可能です。
{{htmlattrdef("autocapitalize")}} {{non-standard_inline}}
これは iOS 版 Safari Mobile で使用する非標準属性であり、子孫の文字列型フォームコントロールでユーザーが入力または編集したテキスト値を自動的に大文字に変換するか否か、またどのように変換するかを制御します。autocapitalize 属性を個別にフォームコントロール子孫要素で指定した場合は、フォーム全体に設定した autocapitalize より優先します。非推奨とされていない値は、iOS 5 以降で使用できます。既定値は sentences です。以下の値を指定できます。
  • none: 自動大文字化機能を無効にします。
  • sentences: 文の先頭文字を自動的に大文字化します。
  • words: 単語の先頭文字を自動的に大文字化します。
  • characters: すべての文字を自動的に大文字化します。
  • on: {{deprecated_inline}} iOS 5 から非推奨です。
  • off: {{deprecated_inline}} iOS 5 から非推奨です。
{{htmlattrdef("autocomplete")}} {{HTMLVersionInline(5)}}
input 要素が既定で、ブラウザーによる値の入力補完を受けるかを示します。この設定はフォームに属する要素の autocomplete 属性で上書きできます。以下の値が指定可能です。
  • off: ユーザーは、フォームを使用するたびにすべての値を入力するか、もしくは独自の入力補完を使用する必要があります。ブラウザーが入力補完をサポートすることはありません。
  • on: ブラウザーはユーザーが以前に入力した値に基づき、これを自動補完のための候補として使用することができます。
ほとんどの現行ブラウザー (Firefox 38+、Google Chrome 34+、IE 11+ など) では autocomplete 属性を設定しても、ブラウザーのパスワードマネージャーがユーザーにログイン情報 (ユーザー名やパスワード) を保存したいかを問い合わせる、またユーザーが同意した場合に次回以降ページを訪れた際にログイン情報を自動入力することは抑制できません。autocomplete 属性とログインフィールドをご覧ください。

メモ: 文書で独自の入力補完を提供するために autocompleteoff に設定する場合は、フォーム内で入力補完が可能なそれぞれの input 要素でも autocompleteoff に設定するべきです。詳しくは、互換性一覧表の Google Chrome に関するメモを参照してください。

{{htmlattrdef("enctype")}}
method 属性の値が post であるとき、この属性はフォームをサーバーに送信する際に使用する、コンテンツの MIME タイプを示します。以下の値が指定可能です。
  • application/x-www-form-urlencoded: 初期値。属性を指定していない場合、この値が使用されます。
  • multipart/form-data: type 属性で "file" を指定した {{HTMLElement("input")}} 要素のために使用する値です。
  • text/plain: (HTML5)

この値は、 {{HTMLElement("button")}}, <input type="submit">, <input type="image"> の {{htmlattrxref("formenctype", "button")}} 属性によって上書きすることが可能です。

{{htmlattrdef("method")}}
フォームを送信する際にブラウザーが使用する HTTP メソッドです。以下の値が指定可能です。
  • post: HTTP POST メソッドに相当します。フォームのデータはボディに収めてサーバーに送信します。
  • get: HTTP GET メソッドに相当します。フォームのデータは '?' をセパレーターとして action 属性の URI に追加して、その結果となる URI をサーバにー送信します。フォームが ASCII 文字列だけを含み、まったく副作用がない場合にのみ、このメソッドを使用してください。
  • dialog: フォームが {{HTMLElement("dialog")}} 要素の中にある場合に使用し、送信するとダイアログが閉じます。

この値は、 {{HTMLElement("button")}}, <input type="submit">, <input type="image"> の {{htmlattrxref("formmethod", "button")}} 属性によって上書きすることが可能です。

{{htmlattrdef("name")}}
フォームの名前です。HTML 4 では推奨されていません(代わりに id を用いるべきです)。HTML 5 ではドキュメント内のフォーム間でユニークである必要があり、また空文字列であってはいけません。
{{htmlattrdef("novalidate")}} {{HTMLVersionInline("5")}}
フォームを送信するときに検証しないことを示す真偽値です。この属性を指定していない(つまり検証される)場合は、既定の設定を {{HTMLElement("button")}}, <input type="submit">, <input type="image"> の {{htmlattrxref("formnovalidate", "button")}} 属性で上書きすることが可能です。
{{htmlattrdef("target")}}
フォームを送信した後に受け取った応答の表示位置を示す名前またはキーワードです。これは、HTML 4 ではフレームの名前またはキーワードでした。HTML5 では、閲覧コンテキスト の名前またはキーワードです (例えば、タブ、ウィンドウ、インラインフレームなど)。以下のキーワードは特別な意味を持ちます:
  • _self: 応答を現在と同じ HTML 4 フレーム (または HTML5 閲覧コンテキスト) に表示します。この値は、属性が指定されていない場合の既定値です。
  • _blank: 応答を新しい名前のつけられていない、HTML 4 ウィンドウまたは HTML5 の閲覧コンテキストに読み込みます。
  • _parent: 応答を現在のフレームの HTML 4 フレームセットの親要素または HTML5 の現在の親閲覧コンテキストに読み込みます。親要素がない場合、このオプションは _self と同じ振る舞いをします。
  • _top: HTML 4 では、応答を元のウィンドウ全体に読み込み、他のフレームをすべてキャンセルします。HTML5 では、応答をトップレベルの閲覧コンテキストに読み込みます (現在の閲覧コンテキストの祖先にあたり、それ以上親のない要素です)。親要素がない場合、このオプションは _self と同じ振る舞いをします。
  • iframename: 応答を、名前のついた {{HTMLElement("iframe")}} に読み込みます。

HTML5: この値は、 {{HTMLElement("button")}}, <input type="submit">, <input type="image"> の {{htmlattrxref("formtarget", "button")}} 属性によって上書きすることが可能です。

HTML

<!-- Simple form which will send a GET request -->
<form action="" method="get">
  <label for="GET-name">Name:</label>
  <input id="GET-name" type="text" name="name">
  <input type="submit" value="Save">
</form>

<!-- POST 要求を送信する簡単なフォーム -->
<form action="" method="post">
  <label for="POST-name">Name:</label>
  <input id="POST-name" type="text" name="name">
  <input type="submit" value="Save">
</form>

<!-- fieldset、legend、label を用いたフォームのマークアップの例 -->
<form action="" method="post">
  <fieldset>
    <legend>Title</legend>
    <input type="radio" name="radio" id="radio">
    <label for="radio">Click me</label>
  </fieldset>
</form>

{{ EmbedLiveSample('Examples', '100%', 110) }}

仕様書

仕様書 状態 備考
{{SpecName('HTML WHATWG', 'forms.html#the-form-element', '<form>')}} {{Spec2('HTML WHATWG')}}
{{SpecName('HTML5 W3C', 'forms.html#the-form-element', '<form>')}} {{Spec2('HTML5 W3C')}}
{{SpecName('HTML4.01', 'interact/forms.html#h-17.3', '<form>')}} {{Spec2('HTML4.01')}} 初回定義

ブラウザーの互換性

{{Compat("html.elements.form")}}

関連情報