JavaScriptでselectオブジェクトの値(value)を取得する方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaScriptでselectオブジェクトの値(value)を取得する方法について現役エンジニアが解説しています。selectタグはフォームの部品で、JavaScriptで要素オブジェクトを取得すると選択項目の値を取得することが出来ます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
監修してくれたメンター
nakamoto
JavaScriptでselectオブジェクトの値(value)を取得する方法についてテックアカデミーのメンター(現役エンジニア)が解説します。
実際のコードをもとに解説するので、理解できるまで読んで「分からない」を解決しましょう。
また、入門向けのJavaScriptを学習できるサイトも紹介しているので、合わせてご覧ください。
本記事はテックアカデミーのJavaScript講座の内容をもとに解説しています。
目次
今回は、JavaScriptに関する内容だね!
どういう内容でしょうか?
JavaScriptでselectオブジェクトの値(value)を取得する方法について詳しく説明していくね!
お願いします!
セレクトボックスとは
セレクトボックスとは、選択肢から値を選びデータを入力するフォーム属性の部品です。
会員登録画面などでよく見る下記の画像です。
JavaScriptでセレクトボックスの値を取得する方法
下記の2つを行えばセレクトボックスの選択した値を取得できます。
- JavaScriptでHTMLのselectを取得する
- 取得した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講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。