formの概要
| ユーザー入力を送信するフォームを作成 HTMLタグ | ||
|
<form>フォームの内容</form> 概要 formタグは、ユーザーからの入力データを受け取り、サーバーに送信するためのフォームを作成するタグです。 |
||
|
formタグの主な属性
| 属性 | 説明 | 使用例 |
|---|---|---|
action |
データを送信するURLを指定 | <form action="/submit"> |
method |
データの送信方法を指定(GETまたはPOST) | <form method="post"> |
enctype |
データのエンコード方式を指定(ファイルアップロード時に使用) | <form enctype="multipart/form-data"> |
autocomplete |
ブラウザの自動補完を有効/無効にする | <form autocomplete="off"> |
target |
送信先を指定(例:_blankで新しいタブで開く) | <form target="_blank"> |
novalidate |
ブラウザの入力チェックを無効化 | <form novalidate> |
formタグの基本的な使い方
以下の例では、名前とメールアドレスを入力し、送信するシンプルなフォームを作成しています。
<form action="/submit" method="post">
<label for="name">名前:</label>
<input type="text" id="name" name="name" required>
<br>
<label for="email">メールアドレス:</label>
<input type="email" id="email" name="email" required>
<br>
<button type="submit">送信</button>
</form>
実行例:
formタグの応用:ファイルアップロード
ファイルをアップロードする場合は、enctype="multipart/form-data" を指定する必要があります。
<form action="/upload" method="post" enctype="multipart/form-data">
<label for="file">ファイルを選択:</label>
<input type="file" id="file" name="file">
<br>
<button type="submit">アップロード</button>
</form>
実行例:
formタグの応用:検索フォーム
以下の例では、ユーザーが検索キーワードを入力できる検索フォームを作成しています。
<form action="/search" method="get">
<input type="text" name="query" placeholder="検索キーワードを入力">
<button type="submit">検索</button>
</form>
実行例:
注意事項
- フォームの送信先(action属性)が未指定の場合、現在のページにデータが送信される。
- GETメソッドはURLにデータを含めるため、機密情報の送信には適さない。
- POSTメソッドはデータをリクエストボディに含めるため、安全な送信が可能。
- 入力必須項目には
required属性を使用し、ブラウザの入力チェックを活用する。 - スタイルを整えるために、CSSを使用してデザインをカスタマイズできる。
よくある質問
- Q: formタグは何のために使われますか?
- A: ユーザーが入力したデータをサーバーに送信するために使用されます。
- Q: GETとPOSTの違いは何ですか?
- A: GETはデータをURLに付加して送信し、POSTはデータをリクエストボディに含めて送信します。機密データの送信にはPOSTを推奨します。
- Q: フォームの送信ボタンをカスタマイズできますか?
- A: はい、CSSを使用してボタンのデザインを変更できます。
- Q: フォームをJavaScriptで非同期送信できますか?
- A: はい、JavaScriptのfetch APIやAjaxを使用すると、ページ遷移なしにデータを送信できます。
- Q: formタグのnovalidate属性は何のために使われますか?
- A: ブラウザの入力チェックを無効化するために使用します。サーバー側でバリデーションを行う場合に便利です。
まとめ
formタグは、ユーザー入力を受け取ってサーバーに送信するために使用する。action属性で送信先を指定し、method属性でデータ送信方法を選択する。- 入力フィールドには
input、textarea、selectなどを配置できる。 - バリデーションを活用することで、ユーザーの入力ミスを防ぐことができる。
- JavaScriptと組み合わせて非同期通信(AJAX)を実装できる。