icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

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

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

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

 

目次

1時間でできる無料体験!

 

田島悠介

今回は、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オブジェクトが変更される度に呼び出されます。

 

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

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)を取得する方法を解説しました。

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

 

 

1時間でできる無料体験!

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

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

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

 

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

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する