form要素:action、method、enctype
action、method、enctypeを指定してform要素を設定します。
「form要素:action、method、enctype」はCoddyKit上の無料HTML Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはHTML Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 HTML Academyコースには全4レッスンが含まれています。
フォームとは
HTMLフォームは、ユーザーがサーバーにデータを送信するための基本的な手段です:
- ログインと登録
- 検索クエリ
- 購入手続きと支払い
- 問い合わせとフィードバック
すべてのフォームは<form>要素から始まります。
form要素
<form>要素は、すべてのフォームコントロールを囲みます:
<form action="/submit" method="post">
<!-- form controls go here -->
<button type="submit">Send</button>
</form>
<!-- When the user submits, the browser sends the form data
to the URL specified in action using the method specified -->action属性
action属性は、フォームデータの送信先を指定します:
<form action="/api/login">...</form> <!-- relative path -->
<form action="https://api.example.com/form">...</form> <!-- absolute -->
<form action="">...</form> <!-- current URL (empty) -->
<form>...</form> <!-- no action = current URL -->method属性
method属性は、データの送信方法を制御します:
<form method="get">...</form>
<!-- GET: appends data to URL as query string
example.com/search?q=html&sort=date
Used for: search forms, filters, bookmarkable results -->
<form method="post">...</form>
<!-- POST: sends data in the request body
Data is not visible in the URL
Used for: login, registration, file uploads, sensitive data -->GETとPOSTの違い
GETとPOSTには異なる特徴があります:
- GET — URLにデータを含める(長さに制限あり)、ブックマーク可能、キャッシュされる、冪等
- POST — 本文にデータを含める(長さに制限なし)、ブックマーク不可、キャッシュされない、冪等ではない
目安として、送信によってサーバーの状態が変わらない場合はGET、変わる場合はPOSTを使用します。
enctype属性
enctype属性は、POSTリクエスト用のフォームデータのエンコード方法を制御します:
<!-- Default: URL-encoded (text/form fields) -->
<form method="post" enctype="application/x-www-form-urlencoded">
<!-- For file uploads: multipart -->
<form method="post" enctype="multipart/form-data">
<input type="file" name="avatar">
</form>
<!-- Plain text (rare): -->
<form method="post" enctype="text/plain">novalidate属性
novalidate属性は、ブラウザー組み込みのバリデーションを無効にします:
<form action="/submit" method="post" novalidate>
<!-- Validation handled by JavaScript instead -->
<input type="email" name="email">
<button type="submit">Submit</button>
</form>formのtarget属性
target属性は、レスポンスを表示する場所を制御します:
<form action="/search" target="_blank">
<!-- Response opens in a new tab -->
</form>
<!-- Values: _blank, _self, _parent, _top, or a frame name -->
<!-- Rarely used — most forms stay on the same page or use AJAX -->formのautocomplete属性
autocomplete属性は、ブラウザーの自動入力を制御します:
<!-- Off: disable autofill for the entire form -->
<form autocomplete="off">
<!-- On (default): allow autofill -->
<form autocomplete="on">
<!-- Better: control at the field level:
<input type="email" autocomplete="email">
<input type="current-password" autocomplete="current-password">
-->JavaScriptでフォームを送信する
デフォルトの送信を防ぎ、JavaScriptで処理します:
<form id="contact-form" action="/contact" method="post">
<input type="text" name="name">
<button type="submit">Send</button>
</form>
<script>
document.getElementById('contact-form').addEventListener('submit', async (e) => {
e.preventDefault(); // stop normal browser submission
const data = new FormData(e.target);
const res = await fetch('/contact', { method: 'POST', body: data });
// handle response...
});
</script>actionとmethodを組み合わせる
actionとmethodを正しく指定したフォームの完全な例:
<form action="/api/newsletter" method="post">
<label for="email">Email address</label>
<input type="email" id="email" name="email" required>
<button type="submit">Subscribe</button>
</form>
<!-- POST because: creating a subscription = server state change -->確認問題
ファイルをアップロードするときは、どのフォームのmethodを使用すべきですか?
まとめ:form要素
フォーム要素の要点:
action— フォームデータを受け取るURLmethod="get"— URLにデータを含める(検索、フィルター)method="post"— 本文にデータを含める(機密データ、状態の変更)enctype="multipart/form-data"— ファイルのアップロードに必須novalidate— ブラウザーのバリデーションを無効にする
よくある質問
「form要素:action、method、enctype」レッスンは無料ですか?
はい。「form要素:action、method、enctype」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、HTML Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 HTML Academyコースには全4レッスンが含まれています。
「form要素:action、method、enctype」で何を学びますか?
action、method、enctypeを指定してform要素を設定します。 ブラウザで直接実行するハンズオンコードでHTML Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
HTML Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのHTML Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「form要素:action、method、enctype」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このHTML Academyレッスンでコードを書いて実行できますか?
はい。すべてのHTML Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- form要素:action、method、enctype
- 入力タイプ:text、password、email、number、tel
- label要素とアクセシビリティ
- button要素:submit、reset、button