HTML講座 / textarea・select・option・buttonを使う

複数行の入力にはtextarea、用意した候補から選ぶ場合はselectとoptionを使います。buttonには用途に応じてsubmit、reset、buttonを明示し、意図しない送信を防ぎます。

textareaで複数行を入力する

labelと関連付け、nameを付けて送信項目を定めます。rowsやcolsは表示サイズの目安で、入力できる最大文字数ではありません。必要ならmaxlengthなどを別に指定します。

<label for="message">Your message</label>
<textarea id="message" name="message" rows="5" cols="40"></textarea>

初期内容は開始タグと終了タグの間に書きます。inputのようにvalue属性へ書く方法とは異なります。初期内容を入れずに例を示したい場合は、placeholderと案内文の違いを確認します。

selectとoptionで候補を用意する

selectが入力欄全体、optionが個々の候補です。画面に見える文言と送信値は分けられます。

<label for="topic">Topic</label>
<select id="topic" name="topic">
  <option value="order">Orders</option>
  <option value="delivery">Delivery</option>
  <option value="other">Other</option>
</select>

例えば「Orders」と表示されても、送信するのはvalue="order"のorderです。初期選択を指定するselectedと、操作後の現在の選択は区別します。multipleを付けると複数選択になりますが、操作方法が環境で違うため、選び方の説明も確認してください。

一つのフォームで送信値とリセットを比較する

次の完全なコードをcontrols.htmlとして保存して開きます。複数行を入力し、選択肢を変え、フォームデータを表示する操作とリセットを比較します。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Form controls practice</title>
  <style>
    textarea, select { box-sizing: border-box; max-width: 100%; font: inherit; }
    textarea { width: 24rem; }
  </style>
</head>
<body>
  <h1>Practice contact controls</h1>
  <form id="controls-form" method="get">
    <p><label for="topic-choice">Topic</label>
      <select id="topic-choice" name="topic" required>
        <option value="">Choose a topic</option>
        <option value="order">Orders</option>
        <option value="delivery">Delivery</option>
      </select></p>
    <p><label for="message-text">Message</label>
      <textarea id="message-text" name="message" rows="4">Test question</textarea></p>
    <button type="submit">Inspect entered values</button>
    <button type="reset">Restore initial values</button>
  </form>
</body>
</html>

textareaの改行を含む値や、選択肢の送信値が一覧へ反映されることを確認します。リセットは常に空にする操作ではなく、文書に指定した初期状態へ戻す操作です。確認後はファイルを再読み込みして同じ条件から再実行できます。送信要求の確認方法はGET・POSTとフォームデータと合わせて使います。

buttonのtypeを明示する

フォーム内のbuttonは、typeを省くと通常送信ボタンとして扱われます。単なる表示切り替えなどで送信したくない場合はtype="button"を指定します。

<form method="get">
  <label for="note">Note</label>
  <textarea id="note" name="note" rows="4"></textarea>
  <button type="submit">Submit</button>
  <button type="reset">Reset entries</button>
</form>

submitは送信、resetは初期状態への復元、buttonはそれ自体では送信しない通常のボタンです。押せる見た目の要素だけを作るより、意味に合う標準部品を使う方がキーボード操作も扱いやすくなります。仕様はtextarea、select、buttonのMDNリファレンスで確認できます。

같은 카테고리의 다른 글
HTML講座 / required・文字数・範囲で入力値を検証する

HTML講座 / required・文字数・範囲で入力値を検証する

必須入力、文字数、数値の範囲と刻み、メール形式の制約を学びます。境界値を試し、ブラウザーの案内とサーバー側の検証を分けて考える方法も説明します。

HTML講座 / ol・ul・dlと入れ子のリスト

HTML講座 / ol・ul・dlと入れ子のリスト

順序付きリスト、箇条書き、用語と説明のリストを使い分けます。番号の開始位置や逆順表示、リスト項目の中にサブリストを置く正しい構造も学びます。

HTML講座 / HTMLアクセシビリティの基本を確認する

HTML講座 / HTMLアクセシビリティの基本を確認する

見出し、リンク、画像、フォームを意味のあるHTMLで作る方法を学びます。スキップリンク、キーボード、フォーカス、ズームを確認する小さなページと、検査の限界も紹介します。

HTML講座 / HTMLとは何か、Webページでの役割を理解する

HTML講座 / HTMLとは何か、Webページでの役割を理解する

HTMLで文書の意味と構造を表す方法を、CSS・JavaScriptとの違いとともに学びます。実際にHTMLファイルを保存して、ブラウザーで確認する手順も紹介します。

HTML講座 / formの構造とGET・POSTによる送信

HTML講座 / formの構造とGET・POSTによる送信

action、method、nameの役割とGET・POSTの違いを学びます。FormDataと開発者ツールを使い、送信対象の値、入力検証、サーバー処理を分けて確認します。

HTML講座 / textarea・select・option・buttonを使う

HTML講座 / textarea・select・option・buttonを使う

複数行入力、選択メニュー、送信・リセット・通常ボタンを使い分けます。表示ラベルと送信値、初期値と現在値を実際のフォームで比較する方法も紹介します。

HTML講座 / テキストの意味を表すem・strong・引用・コード

HTML講座 / テキストの意味を表すem・strong・引用・コード

emとstrong、qとblockquote、abbr、code、kbdの違いを学びます。太字や斜体という見た目ではなく、文章中の役割に合わせて要素を選ぶ方法を説明します。

HTML講座 / 要素・タグ・属性とHTMLの基本文法

HTML講座 / 要素・タグ・属性とHTMLの基本文法

開始タグと終了タグ、空要素、属性、入れ子、コメントの書き方を学びます。真偽属性や特殊文字の注意点と、ブラウザー表示だけでは判断できない文法エラーも説明します。

HTML講座 / figureとfigcaptionで図と説明をまとめる

HTML講座 / figureとfigcaptionで図と説明をまとめる

図とキャプションを一つのまとまりとして表す方法を学びます。altとキャプションの役割、出典の示し方、figureを使わなくてもよい場面も説明します。

HTML講座 / メール・数値・日付・選択肢に合うinputの型

HTML講座 / メール・数値・日付・選択肢に合うinputの型

email、number、date、checkbox、radioの使い分けを学びます。見える入力UIと送信値、初期値と現在値の違いを、フォームデータの確認とともに説明します。