HTMLフォーム

HTMLフォームは、異なるタイプのユーザー入力を収集するために使用されます。

<form>要素

HTMLフォームはユーザーの入力を収集するために使用されます。

<form>要素がHTMLフォームを定義します:

<form>
 .
form elements
 .
</form>

HTMLフォームにはフォーム要素

フォーム要素とは、異なるタイプの<input>要素、チェックボックス、ラジオボタン、送信ボタンなどが含まれます。

<input>要素

<input> 要素の中で最も重要なものはフォーム要素

<input>要素には多くの形式があり、異なる type 属性。

この章で使用されているタイプは以下の通りです:

タイプ 説明
text 一般的なテキスト入力を定義
radio ラジオボタン入力(複数の選択肢のうちの1つを選択)を定義
submit 送信ボタン(フォームを送信)を定義

注記:このチュートリアルで学ぶことになる、入力タイプに関する知識についても後で詳しく説明します。

テキスト入力

<input type="text"> 以下に定義されています:テキスト入力の単一行入フィールド:

<form>
 First name:<br>
<input type="text" name="firstname">
<br>
 Last name:<br>
<input type="text" name="lastname">
</form> 

実際に試してみてください

ブラウザではこのように見えます:

名:


姓:

注記:フォーム自体は見えません。また、テキストフィールドのデフォルトの幅は20文字です。

ラジオボタン入力

<input type="radio"> 定義ラジオボタン

ラジオボタンはユーザーが限られた数のオプションから1つを選択できるようにします:

<form>
<input type="radio" name="sex" value="male" checked>Male
<br>
<input type="radio" name="sex" value="female">Female
</form> 

実際に試してみてください

ラジオボタンはブラウザではこのように見えます:

Male

Female

送信ボタン

<input type="submit"> 以下に向けて定義されています:フォームハンドラ(form-handler)送信フォームのボタン。

フォームハンドラは、入力データを処理するスクリプトを含むサーバーページです。

フォームハンドラはフォームの action 属性で指定:

<form action="action_page.php">
First name:<br>
<input type="text" name="firstname" value="Mickey">
<br>
Last name:<br>
<input type="text" name="lastname" value="Mouse">
<br><br>
<input type="submit" value="Submit">
</form> 

実際に試してみてください

ブラウザではこのように見えます:

名:


姓:


Action属性

action属性フォームを提出時に実行されるアクションを定義します。

サーバーにフォームを提出する一般的な方法は、送信ボタンを使用することです。

通常、フォームはウェブサーバー上のウェブページに提出されます。

上記の例では、提出されたフォームを処理するサーバースクリプトを指定しています:

<form action="action_page.php">

action 属性を省略すると、action が現在のページに設定されます。

Method 属性

method 属性フォームを送信する際に使用する HTTP メソッドを定義します(GET または POST):

<form action="action_page.php" method="GET">

または:

<form action="action_page.php" method="POST">

GETを使用するべき時は?

GET(デフォルトのメソッド)を使用できます:

フォームの送信が被動的(例えば検索エンジンのクエリ)で、機密情報がない場合。

GETを使用する場合、フォームデータはページのアドレスバーで見えます:

action_page.php?firstname=Mickey&lastname=Mouse

注記:GETは少量のデータの送信に最適です。ブラウザは容量制限を設定します。

POSTを使用するべき時は?

POSTを使用するべきです:

フォームがデータを更新している場合や、機密情報(例えばパスワード)を含んでいる場合。

POSTはセキュリティがより良いです、なぜならページのアドレスバーで送信されたデータは見えないからです。

Name 属性

正しく送信されるためには、各入力フィールドに name 属性を設定する必要があります。

この例では「Last name」の入力フィールドのみが送信されます:

<form action="action_page.php">
First name:<br>
<input type="text" value="Mickey">
<br>
Last name:<br>
<input type="text" name="lastname" value="Mouse">
<br><br>
<input type="submit" value="Submit">
</form> 

実際に試してみてください

<fieldset> 要素でフォームデータを組み合わせます。

<fieldset> 要素はフォーム内の関連データを組み合わせます。

<legend> 要素は <fieldset> 要素でタイトルを定義しています。

<form action="action_page.php">
<fieldset>
<legend>Personal information:</legend>
First name:<br>
<input type="text" name="firstname" value="Mickey">
<br>
Last name:<br>
<input type="text" name="lastname" value="Mouse">
<br><br>
<input type="submit" value="Submit"></fieldset>
</form> 

実際に試してみてください

この HTML 代码はブラウザで見たときのようになります:

個人情報:
名:


姓:


HTML フォーム属性

HTML <form> 要素は、すべての可能性の属性が設定されていると次のようになります:

<form action="action_page.php" method="GET" target="_blank" accept-charset="UTF-8">
ectype="application/x-www-form-urlencoded" autocomplete="off" novalidate>
.
form elements
 .
</form> 

以下に <form> 属性の一覧を示します:

属性 説明
accept-charset 送信されるフォームで使用する文字セットを指定(デフォルト:ページの文字セット)。
action フォームをどこに送信するかのアドレス(URL)(送信ページ)を指定します。
autocomplete ブラウザがフォームを自動的に完了するかどうかを指定(デフォルト:有効)。
enctype 送信されるデータのエンコーディングを指定(デフォルト:url-encoded)。
method フォームを送信する際に使用するHTTPメソッドを指定(デフォルト:GET)。
name フォームの名前を識別する(DOMでは:document.forms.name)。
novalidate ブラウザがフォームを検証しないことを指定します。
target action属性のaddressターゲットを指定(デフォルト:_self)。

注記:以下の章で属性に関する多くの知識を学びます。