【HTML】selectタグで選択可能なセレクトボックスを作成する方法と初期値の解説

selectタグHTML
書いてる人
あいりゅー

プログラミングを学びながら更新しています。
iPhone/iPad/Mac/Apple WatchなどのApple製品はこちらで主に更新しています。
麻雀の反省をひたすら掲載してるブログもやってます。

あいりゅーをフォローする

このページについて

このページではHTMLで使う事ができるselectタグの機能と使い方を解説しています。

selectタグ

selectタグはユーザーが選ぶ事ができるセレクトボックスを定義する事ができます。セレクトボックスとは以下のような物です。

項目1から3までを1つのセレクトボックスに入れています。プルダウンとかも言いますが、このような物を定義する事ができます。

selectタグはインライン要素なので、文章の途中に入れることも可能です。

selectタグの書き方

selectは単体では何も表示しません。表示するにはoptionタグを使用する必要があります。そしてselectはlabelタグも併用しましょう。このlabelタグはその入力エリアやセレクトボックスに対する説明を定義するもので、基本的にはセットで使うことを推奨されています。

基本的なセレクトボックスの書き方は以下のようになります。

<label>セレクトボックス
<select>
 <option>項目1</option>
 <option>項目2</option>
 <option>項目3</option>
</select>
</lable>

このようにlabelタグで囲み、その中にselectやoptionタグを入れるとユーザーがラベル名をタップやクリックした場合に、セレクトボックスが選択状態になります。labelタグで囲まなくてもいいんですが、その際はid属性とfor属性を併用して関連づけておくとユーザーからは分かりやすいかなと思います。

選択・送信時に送られる値に関しては、それぞれのoptionタグに設定されているvalue属性が送信されます。未設定だった場合はそのoptionタグの項目名がそのまま送信されます。

selectタグで使える属性

selectタグで使える属性は以下の通りです。詳しい解説はそれぞれのページを参照してください。

autocomplete入力や選択に関してオートコンプリートを有効にする
autofocusページ読み込み時に自動で選択状態にする
disabled指定した選択項目を選べないようにする
form特定のフォームと関連付ける
multiple複数選択することを許可する
nameセレクトボックスの名前を定義
required選択必須であることを定義
size一度に見えるセレクトボックスの項目数を指定

selectタグはグローバル属性とイベント属性をサポートしています。

selectタグで唯一困惑するというか扱いが難しいのがmultiple属性です。これを使う場合、キーボードとの組み合わせでOSの標準機能が動作したりブラウザによってはそもそも動作しなかったりと、なかなか不安定です。

selectタグの例

selectタグの例を簡単に紹介します。まず基本的な選択は以下の通りに出来ます。

<label>ラベル</label>
<select id="select1>
 <option value="A">項目1</option>
 <option value="B">項目2</option>
</select>

これで実行するとシンプルな選択リストが出ます。


optgroupタグで選択リスト内でグループ分けをする事ができます。

<label>ポケモン</label>
<select>
<optgroup label="水ポケ">
<option>カメックス</option>
<option>オーダイル</option>
<option>ラグラージ</option>
<option>エンペルト</option>
<option>ダイケンキ</option>
<option>ゲッコウガ</option>
<option>アシレーヌ</option>
<option>インテレオン</option>
</optgroup>
<optgroup label="氷ポケ">
<option>クマシュン</option>
<option>ツンベアー</option>
<option>ユキワラシ</option>
<option>ユキメノコ</option>
<option>オニゴーリ</option>
</optgroup>
</select>

これを実行したものが以下になります。

optgroupを使うとセレクトボックス内でグループ分けをする事ができます

値の取得

選択結果を受け取る際にはoptionタグvalue属性を受け取ります。その時に使うのがJavaScriptやPHPなんですが、どちらに関しても簡単に解説します。

PHPで受け取る場合はいつも通り、method属性でPOSTを選択し、PHP側で$_POSTから使いたいデータを取り出します。

JavaScriptではイベント属性を使い、関数を実行させることで中身を読み出す事ができます。中身は簡単に書くと以下の通りです。

let x = document.getElementById('select1').value;

Idの中身はその都度変えてく使いましょう。valueプロパティを使うことで、選択された項目のvalue属性を読みとって扱う事ができます。

送信される値は各optionタグvalue属性で指定されている物ですが、属性未設定の場合はoptionタグの項目のテキストそのものが送信されます。

まとめ

selectタグは選択可能なリストを定義するのみとなり、中身を定義するにはoptionタグを使う必要があります。selectとoptionではそれぞれ使える属性が異なる為両方とも覚えておくに越したことはありません。

値を取得するにはJavaScriptやPHPで取得し、扱う事ができます。クリック時に何かの処理を行いたい場合、クリックイベントを設定する事で実現できます。

HTMLの基礎
HTMLってどんな言語?書き方やHTMLファイルの作成方法などを解説。
HTMLタグで押さえておきたいポイント3選
HTMLタグを使う上で必ず押さえておいてほしいポイント3つの解説です。
HTMLタグと属性一覧
HTMLタグと属性の一覧です。
tableタグ生成ページ
tableタグの基本形を生成できるページです。
ulタグ・olタグ生成ページ
ulタグolタグの基本形を生成できるページです。
タイトルとURLをコピーしました