JavaScript と jQuery を使用してドロップダウン リストから選択値を取得する

Habdul Hazeez 2024年2月15日
  1. バニラ JavaScript で選択値を取得する
  2. jQuery で選択値を取得する
JavaScript と jQuery を使用してドロップダウン リストから選択値を取得する

この記事では、標準の JavaScript と jQuery を使用して選択値を取得する方法を説明します。 2つの例を説明します。 最初の例は JavaScript のアプローチを示し、2 番目の例は jQuery を使用しています。

バニラ JavaScript で選択値を取得する

HTML で <select> 要素を定義すると、JavaScript を介してその値にアクセスできます。 これは、JavaScript が要素を操作できるメソッドと関数を提供するためです。

ただし、要素によって異なります。 したがって、すべての <select> 要素について、次を使用してその値にアクセスできます。

  1. selectelement.value
  2. options プロパティと selectedIndex

Selectelement.value を使用して選択値を取得する

<select> 要素には、選択された要素の値を含む value プロパティがあります。 したがって、次のコードの <select> 要素にはいくつかの国があります。

HTML ボタンをクリックすると、select 値が取得されます。 また、<select> 要素の各 <option> には value プロパティがあることに注意してください。

このプロパティを削除するかそのままにするかを選択できます。 同じ結果が得られます。

コード:

<head>
    <meta charset="utf-8">
    <title>Get Selected Value With Vanilla JS</title>
    <style>
        body {
            display: grid;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
    </style>
</head>
<body>
    <main>
        <form>
            <label>Pick a food</label>
            <select id="select_menu">
                <option value="Rice">Rice</option>
                <option value="Carrot" selected="selected">Carrot</option>
                <option value="Avocado">Avocado</option>
                <option value="Banana">Banana</option>
            </select>
            <button id="submit_button">Get Food Name</button>
        </form>
    </main>

    <script>
        let submit_button = document.getElementById("submit_button");
        let select_menu = document.getElementById("select_menu")

        submit_button.addEventListener("click", function(event) {
            // Prevent the submission of the form
            event.preventDefault();
            var selected_value = "Hooray!, you selected " + select_menu.options[select_menu.selectedIndex].value;
            alert(selected_value);
        });
    </script>
</body>

出力:

Vanilla JS で選択値を取得 1

options プロパティと selectedIndex を使用して選択値を取得する

<options> プロパティにアクセスすると、selectedIndex プロパティにアクセスできます。 このプロパティは、現在選択されている要素を表します。

また、selectedIndex プロパティには、選択した値を返す value プロパティがあります。

たとえば、次のコードの <select> 要素に食べ物の名前があります。 したがって、食品名を選択してボタンをクリックすると、その値を取得できます。

コード:

<head>
    <meta charset="utf-8">
    <title>Get Selected Value With Vanilla JS</title>
    <style>
        body {
            display: grid;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
    </style>
</head>
<body>
    <main>
        <form>
            <label>Where are you from?</label>
            <select id="select_menu">
                <option value="Germany">Germany</option>
                <option value="Ethiopia" selected="selected">Ethiopia</option>
                <option value="Romania">Romania</option>
                <option>Madagascar</option>
            </select>
            <button id="submit_button">Get Country Name</button>
        </form>
    </main>

    <script>
        let submit_button = document.getElementById("submit_button");
        let select_menu = document.getElementById("select_menu")

        submit_button.addEventListener("click", function(event) {
            // Prevent the submission of the form
            event.preventDefault();
            var selected_value = "Hello, you are from: " + select_menu.options[select_menu.selectedIndex].value;
            alert(selected_value);
        });
    </script>
</body>

出力:

バニラ JS 2 で選択値を取得

jQuery で選択値を取得する

jQuery ライブラリは、select 値の取得など、多くの標準的な JavaScript タスクを簡素化します。 一方、バニラの JavaScript で行うのと同じ方法で、jQuery でタスクを解決する義務はありません。

したがって、別のアプローチを取ることができます。 それでも、選択値を取得します。

最初の変更点は、<option> 要素に value プロパティがないことです。 もう 1つの変更点は、選択した要素を取得する方法です。

ここでは、<select> 要素で jQuery .change() API を使用します。 これは、選択するたびに選択値を取得できることを意味します。

コード:

<head>
    <meta charset="utf-8">
    <title>Get Selected Value With jQuery</title>
    <script
        src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"
        integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ=="
        crossorigin="anonymous"
        referrerpolicy="no-referrer">
    </script>
    <style>
        body {
            display: grid;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
    </style>
</head>
<body>
    <main>
        <form>
            <label>Choose a Language</label>
            <select id="programming_language">
                <option>Swift</option>
                <option>Obective-C</option>
                <option>Erlang</option>
                <option>COBOL</option>
                <option>FORTRAN</option>
            </select>
        </form>
    </main>
    <script>
        $(document).ready(function () {
            $('#programming_language').change(function () {
                var programming_language = document.getElementById("programming_language");
                var selected_value = programming_language.options[programming_language.selectedIndex].value
                alert("You selected " + selected_value);
            });
        });
    </script>
</body>

出力:

jQuery で選択値を取得

著者: Habdul Hazeez
Habdul Hazeez avatar Habdul Hazeez avatar

Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.

LinkedIn