form タグエレメント
form タグエレメントは、サーバーにデータ送信をするための HTML タグエレメントです。
データの入力は <input>、<select>、<textarea>、<button> によって受け付けます。
送信したいデータの範囲ごとに <form>、 </form> で囲み、<form> にはサーバーにデータを送る手段を指定します。
<form name="example_form" action="./" method="post" enctype="application/x-www-form-urlencoded"> <fieldset><legend>example form</legend> <label>予定名</label><input name="plan" type="text" value="" placeholder="予定名"></input> <label>予定日</label><input type="date" name="expl_date"></input> <input type="submit"> </fieldset> </form>
サーバーにデータを送る手段は、<form>の属性で指定します。以下の属性を参照してください。
サーバーにデータを送信する場合には、<input>、<select>、<textarea> といったデータを受け付けるエレメントに name 属性を設定します。
name の値と value の値の組み合わせがサーバーに送信されます。
<form> の送信内容を分けるためには <fieldset> を利用します。
- ad -
methodについて
POST と GET があり、POST が default です。
POST は送信データを隠すことができます。ファイルのアップロードでは POST を使います。
GET は URL に追記する形で送信します。そのために送信する内容が丸見えになります。
enctype について
application/x-www-form-urlencoded が default です。URL をエンコードします。
ファイルのアップロード用には multipart/form-data にします。その場合は、サーバー側にもファイルを受け付けられるようにする必要があります。
text/plain はスペースが + に置き換わるだけで URL エンコードなしです。
データ入力用エレメント <input>、<select>、<textarea>、<button>
データ入力には <input>、<select>、<textarea> といった <form> 部品を使います。内容は以下です。
- <input>... テキスト(改行を含まない)、数値、日時、送信ボタンなど
- <select>... 一覧から選択入力
- <textarea>... 改行を含むテキスト
その他に汎用のボタン <button>、項目名を付ける <label> といった <form> 部品があります。
<form> 内を内容ごとに分けるには<fieldset>を使います。 <fieldset>にはdisabled属性があります。disabledが指定された<fieldset>内の内容はサーバーに送信されません。
データの送信はスクリプトでもできます。スクリプトでは非同期通信が可能で、javascriptでは ajax とも呼ばれていますが、サーバー側で非同期に対応する必要があります。
- ad -
JavaScript
<form>を定義したインターフェイスは、HTMLFormElement です。詳しくは、HTMLFormElement を参照してください。
<form>内の子エレメント群については、HTMLFormControlsCollection を参照してください。