javascript selectboxで選択した値を取得する

javascript selectboxで選択した値を取得する

javascriptで、selectboxが選択されたときにに発生するchangeイベントを使って、selectboxで選択した値を取得するサンプルコードを記述してます。イベント発生時に対象のselectboxにvalueを指定することで取得できます。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 109.0.5414.75

値を取得

selectboxで選択した値を取得するには、選択した際に発生する「change」イベントを使用して値を取得します。

要素.addEventListener('change', function(event) {
   要素.value; // 要素の値
});

実際に取得してみます。

<select id="hoge" class="custom-select">
  <option selected>select menu</option>
  <option value="One">One</option>
  <option value="Two">Two</option>
  <option value="Three">Three</option>
</select>

<script>

let obj = document.getElementById("hoge");

// 選択した際のイベント取得
obj.addEventListener('change', function(event) {
  console.log( obj.value ) ;
});

</script>

実行結果

「onchange」を使用しても、同様の結果が得られます。

let obj = document.getElementById("hoge");

// 選択した際のイベント取得
obj.onchange = function(event) {
  console.log( obj.value ) ;
};

また、javascript部はdocument.getElementByIdを省略して「id名」のみで記述することも可能です。関数もアロー関数を使用できます。引数の「event」も省略できます。

hoge.onchange = () => { console.log( hoge.value ) };

サンプルコード

以下は、
selectボックスから値を選択した際に、画面にその値を表示するだけの
サンプルコードとなります。

※cssには「bootstrap material」を使用してます。

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <title>mebeeサンプル</title>
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons">
  <link rel="stylesheet"
    href="https://unpkg.com/bootstrap-material-design@4.1.1/dist/css/bootstrap-material-design.min.css"
    integrity="sha384-wXznGJNEXNG1NFsbm0ugrLFMQPWswR3lds2VeinahP8N0zJw9VWSopbjv2x7WCvX" crossorigin="anonymous">
</head>
<style>
  .main {
    margin: 0 auto;
    margin-top: 200px;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 25px;
    width: 500px;
  }
</style>
<script>

  window.onload = function () {

    let hoge = document.getElementById("hoge");
    // 選択した際のイベント取得
    hoge.addEventListener('change', (event) => {
      document.getElementsByClassName('badge-primary')[0].textContent = hoge.value;
    });

  }

</script>

<body>
  <div class="main">

    <h2><span class="badge badge-primary">選択した値</span></h2>

    <select id="hoge" class="custom-select">
      <option selected>select menu</option>
      <option value="One">One</option>
      <option value="Two">Two</option>
      <option value="Three">Three</option>
    </select>

  </div>
</body>

</html>

表示されていることが確認できます。