JavaScriptでselectオブジェクトの値(value)を取得する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaScriptでselectオブジェクトの値(value)を取得する方法について現役エンジニアが解説しています。selectタグはフォームの部品で、JavaScriptで要素オブジェクトを取得すると選択項目の値を取得することが出来ます。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

JavaScriptでselectオブジェクトの値(value)を取得する方法についてテックアカデミーのメンター(現役エンジニア)が解説します。

実際のコードをもとに解説するので、理解できるまで読んで「分からない」を解決しましょう。

また、入門向けのJavaScriptを学習できるサイトも紹介しているので、合わせてご覧ください。

 

目次

 

田島悠介

今回は、JavaScriptに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

JavaScriptでselectオブジェクトの値(value)を取得する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

セレクトボックスとは

セレクトボックスとは、選択肢から値を選びデータを入力するフォーム属性の部品です。

会員登録画面などでよく見る下記の画像です。

JavaScriptで取得するHTMLのセレクトボックスの要素

 

[PR] フロントエンドで挫折しない学習方法を動画で公開中

JavaScriptでセレクトボックスの値を取得する方法

下記の2つを行えばセレクトボックスの選択した値を取得できます。

  1. JavaScriptでHTMLのselectを取得する
  2. 取得したselectの値を参照する(選択した値になっている表示状態にする)

 

実際に書いてみよう

選択した誕生月をアラート表示(画面上にメッセージ表示)してみましょう。

 

まず、HTMLで誕生月のセレクトボックスを記述します。

そして、JavaScriptで選択した値の取得とアラートの表示処理を行います。

HTMLのソース

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
  </head>
  <body>
    <span>誕生月</span>
    <select name="month" id="selectMonth">
      <option value="">-</option>
      <option value="1">1月</option>
      <option value="2">2月</option>
      <option value="3">3月</option>
      <option value="4">4月</option>
      <option value="5">5月</option>
      <option value="6">6月</option>
      <option value="7">7月</option>
      <option value="8">8月</option>
      <option value="9">9月</option>
      <option value="10">10月</option>
      <option value="11">11月</option>
      <option value="12">12月</option>
    </select>  
  </body>
</html>

 

JavaScriptのソース

var select = document.getElementById('selectMonth');

select.onchange = function(){
  alert(this.value);
}

 

解説

「document.getElementById」は、HTMLソースのselectにて指定したIDを渡し、selectオブジェクトを取得します。

「select.onchange」は、取得したselectオブジェクトが変更される度に呼び出されます。

 

 

selectオブジェクトで様々な値を取ってみよう

ここでは、selectオブジェクトを利用して値を取得する処理を学習してみましょう。

 

YesかNoの実装

今回はselectオブジェクトを利用してYesかNoかを選択できるようにしてみましょう。

 

HTML

<select name="choice">
  <option value="yes">Yesです</option>
  <option value="no" selected>Noです</option>
</select>
<div id="box"></div>

JavaScript

let selector = document.querySelector('#choice');
selector.addEventListener('change', (event) => {
  let box = document.querySelector('#box');
  box.textContent = event.target.value;
});
document.getElementById('box').textContent = techacademy;

実行結果

HTML解説

<select name=”choice”>でchoiceというname属性でselectタグを使用します。

name属性は要素の名称を意味します。

<option value=”yes”>Yesです</option>では、yesという値が入ったオプションを指定します。

オプションで指定することで選択肢の1つに指定可能です。

<option value=”no”>Noです</option>では、noという値が入ったオプションを指定します。

</select>でselectタグを終了します。

<div id=”box”></div>では、boxというidを指定しています。

JavaScript解説

let selector = document.querySelector(‘#choice’);では、id=’choice’の要素を変数selectorに代入しています。

selector.addEventListener(‘change’, (event) => {では、変数selectorの内容に変化が生じた時処理をするイベントリスナーです。

addEventListenerやイベントリスナーについてはこちらの記事を参考にしてみてください。

JavaScriptのaddEventListenerの使い方を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン

let box = document.querySelector(‘#box’);では、id=’box’の要素を変数boxに代入しています。

box.textContent = event.target.value;では、イベントリスナーで取得したeventの中にあるvalueを、box.textContentでhtmlのid=’box’の要素に表示しています。

 

onchangeで単独選択

onchangeとはonchangeイベントと言って、指定した要素に変化が発生した時実行される処理です。

HTMLサンプルコード

<select id="choice">
  <option value="yes">Yesです</option>
  <option value="no">Noです</option>
</select>
<div id="box"></div>

JavaScriptサンプルコード

let element = document.getElementById( "choice" ) ;
element.onchange = function(){
  let techacademy = this.value ;
  document.getElementById('box').textContent = techacademy;
}

動作確認

HTML解説

<select name=”choice”>でchoiceというname属性でselectタグを使用します。

name属性は要素の名称を意味します。

<option value=”yes”>Yesです</option>では、yesという値が入ったオプションを指定します。

オプションで指定することで選択肢の1つに指定可能です。

<option value=”no”>Noです</option>では、noという値が入ったオプションを指定します。

</select>でselectタグを終了します。

<div id=”box”></div>では、boxというidを指定しています。

JavaScript解説

let element = document.getElementById( “choice” ) ;では、id=’choice’の要素を変数selectorに代入しています。

element.onchange = function(){では、変数elementに変化が発生した時に実行する即時関数(定義すると即時に実行される関数)を宣言しています。

 

即時関数について詳しく知りたい人はこちらの記事を参考にしてみてください。

JavaScriptで即時関数を使う方法【初心者向け】 | TechAcademyマガジン

 

let techacademy = this.value ;では、現在の値を変数techacademyに代入しています。

document.getElementById(‘box’).textContent = techacademy;では、変数techacademyの内容をHTMLのid=”box”で指定した場所に文字列として表示しています。

 

onchangeで複数選択

onchangeとはonchangeイベントと言って、指定した要素に変化が発生した時実行される処理です。

今回は複数の選択肢が存在する場合の実装を行ってみます。

HTMLサンプルコード

<select id="choice" multiple>
  <option value="yes">Yesです</option>
  <option value="no">Noです</option>
  <option value="yesno">YesでもありNoでもあります。</option>
</select>
<div id="box"></div>

JavaScriptサンプルコード

let element = document.getElementById( "choice" );
element.onchange = function(){
  let a = this.value;
  document.getElementById('box').textContent = a;
}

実行結果

HTML解説

<select id=”choice” multiple>では、複数選択可能なselectタグを用意しています。

<option value=”yes”>Yesです</option>では、yesという値が入ったオプションを指定します。

オプションで指定することで選択肢の1つに指定可能です。

<option value=”no”>Noです</option>では、では、noという値が入ったオプションを指定します。

<option value=”yesno”>YesでもありNoでもあります。

</option>では、yesnoという値が入ったオプションを指定します。

</select>では、selectタグを終了しています。

<div id=”box”></div>では、boxというidを指定しています。

JavaScript解説

let element = document.getElementById( “choice” );では、id=’choice’の要素を変数selectorに代入しています。

element.onchange = function(){では、変数elementに変化が発生した時に実行する即時関数を宣言しています。

let techacademy = this.value ;では、現在の値を変数techacademyに代入しています。

document.getElementById(‘box’).textContent = techacademy;では、変数techacademyの内容をHTMLのid=”box”で指定した場所に文字列として表示しています。

 

まとめ

今回は、JavaScriptでselectオブジェクトの値(value)を取得する方法を解説しました。

結果的に、ユーザが選択したオブジェクトをデータとして利用することで、データに応じた表示を行うことが可能になります。

 

 

この記事を監修してくれた方

中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長開発実績:PHPフレームワークによるフランチャイズ企業向け会員制SNS。Shopifyによる海外進出用大規模ネットショップ構築。Vue.jsによる金融機関向け内部アプリ。AWSやLinuxハウジングサーバーでの環境構築。人工知能を利用した画像判別システム。小売チェーン店舗用スマホアプリ。Wordpressによる不動産チェーン店向け賃貸・売買仲介システム。基幹システム移管用データコンバートシステム。ボランティア活動:小学生がオリジナルAndroidアプリをGooglePlayでリリース、NHK Whyプログラミング入賞、全国Programing Festival入賞、中学生がSNS型PWAアプリリリースする市クラブ講座活動を行っている。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもJavaScript・jQueryを使ったWebサービス公開を習得できるオンラインブートキャンプJavaScript/jQuery講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。