読み込み中...

JavaScriptでプルダウン選択の7つのイベント活用術

JavaScriptでプルダウン選択イベントを活用する方法を学ぶ JS
この記事は約16分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、JavaScriptでプルダウン選択の7つのイベント活用術を身につけることができます。

プルダウンメニューは、Webページ上でよく利用されるUI要素ですが、その選択イベントを活用することで、さらに便利で魅力的な機能を実現できます。

●JavaScriptでプルダウン選択イベントとは

JavaScriptでプルダウン選択イベントとは、プルダウンメニューから項目を選択した際に発生するイベントです。

このイベントを利用することで、選択された項目に応じた処理を実行したり、ページの表示内容を動的に変更することが可能です。

●プルダウン選択イベントの基本的な使い方

プルダウン選択イベントの基本的な使い方は、プルダウンメニューの要素に対して、イベントリスナーを設定し、選択された項目に応じた処理を実行します。

○サンプルコード1:プルダウン選択イベントの基本

このサンプルコードでは、プルダウンメニューで選択された項目をコンソールに表示するコードを紹介しています。

この例では、プルダウンの選択イベントに対してイベントリスナーを設定し、選択された項目を取得してコンソールに表示しています。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>プルダウン選択イベントの基本</title>
</head>
<body>
    <select id="menu">
        <option value="item1">項目1</option>
        <option value="item2">項目2</option>
        <option value="item3">項目3</option>
    </select>
    <script>
        // プルダウン要素を取得
        const menu = document.getElementById('menu');
        
        // 選択イベントのリスナーを設定
        menu.addEventListener('change', (event) => {
            // 選択された項目を取得
            const selectedItem = event.target.value;
            console.log(`選択された項目: ${selectedItem}`);
        });
    </script>
</body>
</html>

●プルダウン選択イベントの応用例

プルダウン選択イベントは、さまざまなシーンで活用できます。

ここでは、いくつかの応用例とそれに対応するサンプルコードを紹介します。

○サンプルコード2:プルダウンで選択した値に応じた表示切り替え

このコードでは、プルダウンで選択した値に応じて、表示内容を切り替える方法を紹介しています。

この例では、選択された値に基づいて、対応するテキストを表示するエリアを表示または非表示にしています。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>プルダウンで選択した値に応じた表示切り替え</title>
</head>
<body>
    <select id="menu">
        <option value="0">選択してください</option>
        <option value="1">項目1</option>
        <option value="2">項目2</option>
        <option value="3">項目3</option>
    </select>
    <div id="content1" style="display:none;">コンテンツ1の説明</div>
    <div id="content2" style="display:none;">コンテンツ2の説明</div>
    <div id="content3" style="display:none;">コンテンツ3の説明</div>
    <script>
        const menu = document.getElementById('menu');
        const contents = {
            1: document.getElementById('content1'),
            2: document.getElementById('content2'),
            3: document.getElementById('content3')
        };

        menu.addEventListener('change', (event) => {
            const selectedItem = event.target.value;
            for (const key in contents) {
                contents[key].style.display = key === selectedItem ? 'block' : 'none';
            }
        });
    </script>
</body>
</html>

○サンプルコード3:プルダウン選択で条件検索

このコードでは、プルダウンで選択した条件に応じて、テーブル内のデータを絞り込む方法を紹介しています。

この例では、選択された値に基づいて、テーブルの行を表示または非表示にしています。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>プルダウン選択で条件検索</title>
</head>
<body>
    <select id="menu">
        <option value="all">すべて</option>
        <option value="A">カテゴリA</option>
        <option value="B">カテゴリB</option>
    </select>
    <table id="table">
        <tr>
            <th>名前</th>
            <th>カテゴリ</th>
        </tr>
        <tr data-category="A">
            <td>アイテム1</td>
            <td>カテゴリA</td>
        </tr>
        <tr data-category="B">
            <td>アイテム2</td>
            <td>カテゴリB</td>
        </tr>
        <tr data-category="A">
            <td>アイテム3</td>
            <td>カテゴリA</td>
        </tr>
    </table>
    <script>
        const menu = document.getElementById('menu');
        const table = document.getElementById('table');
        const rows = table.querySelectorAll('tr[data-category]');

        menu.addEventListener('change', (event) => {
            const selectedItem = event.target.value;
            rows.forEach(row => {
                const category = row.getAttribute('data-category');
                row.style.display = selectedItem === 'all' || selectedItem === category ? '' : 'none';
            });
        });
    </script>
</body>
</html>

○サンプルコード4:プルダウンでフォントサイズを変更

このコードでは、プルダウンで選択した値に応じて、テキストのフォントサイズを変更する方法を紹介しています。

この例では、選択された値に基づいて、テキストのスタイルを動的に変更しています。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>プルダウンでフォントサイズを変更</title>
</head>
<body>
    <select id="menu">
        <option value="14">小</option>
        <option value="18">中</option>
        <option value="24">大</option>
    </select>
    <p id="text">このテキストのフォントサイズを変更します。</p>
    <script>
        const menu = document.getElementById('menu');
        const text = document.getElementById('text');

        menu.addEventListener('change', (event) => {
            const fontSize = event.target.value;
            text.style.fontSize = fontSize + 'px';
        });
    </script>
</body>
</html>

○サンプルコード5:プルダウンで言語切り替え

このコードでは、プルダウンで選択した言語に応じて、ページ上のテキストを切り替える方法を紹介しています。

この例では、選択された言語に基づいて、対応するテキストデータを表示しています。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>プルダウンで言語切り替え</title>
</head>
<body>
    <select id="language">
        <option value="ja">日本語</option>
        <option value="en">英語</option>
    </select>
    <p id="text"></p>
    <script>
        const languageMenu = document.getElementById('language');
        const textElement = document.getElementById('text');
        const texts = {
            ja: 'こんにちは、世界!',
            en: 'Hello, world!'
        };

        languageMenu.addEventListener('change', (event) => {
            const selectedLanguage = event.target.value;
            textElement.textContent = texts[selectedLanguage];
        });

        languageMenu.dispatchEvent(new Event('change'));
    </script>
</body>
</html>

○サンプルコード6:プルダウンでカラーパレット選択

このコードでは、プルダウンで選択した色に応じて、ページの背景色を変更する方法を紹介しています。

この例では、選択された値に基づいて、背景色を動的に変更しています。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>プルダウンでカラーパレット選択</title>
</head>
<body>
    <select id="color">
        <option value="#ffffff">白</option>
        <option value="#ff0000">赤</option>
        <option value="#00ff00">緑</option>
        <option value="#0000ff">青</option>
    </select>
    <script>
        const colorMenu = document.getElementById('color');

        colorMenu.addEventListener('change', (event) => {
            const selectedColor = event.target.value;
            document.body.style.backgroundColor = selectedColor;
        });
    </script>
</body>
</html>

○サンプルコード7:プルダウン選択でソート機能

このコードでは、プルダウンで選択したソート条件に応じて、テーブル内のデータを並べ替える方法を紹介しています。

この例では、選択された値に基づいて、テーブルの行を動的に並べ替えています。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>プルダウン選択でソート機能</title>
    <style>
        table {
            border-collapse: collapse;
        }
        th, td {
            border: 1px solid black;
            padding: 4px;
        }
    </style>
</head>
<body>
    <select id="sort">
        <option value="asc">昇順</option>
        <option value="desc">降順</option>
    </select>
    <table id="dataTable">
        <tr>
            <th>名前</th>
            <th>年齢</th>
        </tr>
        <tr>
            <td>山田太郎</td>
            <td>35</td>
        </tr>
        <tr>
            <td>佐藤花子</td>
            <td>28</td>
        </tr>
        <tr>
            <td>鈴木一郎</td>
            <td>42</td>
        </tr>
    </table>
    <script>
        const sortMenu = document.getElementById('sort');
        const dataTable = document.getElementById('dataTable');

        sortMenu.addEventListener('change', (event) => {
            const sortOrder = event.target.value;
            const rows = Array.from(dataTable.rows).slice(1);
            rows.sort((a, b) => {
                const ageA = parseInt(a.cells[1].textContent);
                const ageB = parseInt(b.cells[1].textContent);
                return sortOrder === 'asc' ? ageA - ageB : ageB - ageA;
            });

            rows.forEach(row => dataTable.appendChild(row));
        });
    </script>
</body>
</html>

●注意点と対処法

プルダウン選択イベントを使用する際、適切なイベントリスナーを設定することが重要です。

また、ブラウザ間の挙動の違いに注意し、互換性を保つようにしましょう。

●カスタマイズ方法

プルダウン選択イベントをカスタマイズする方法は様々あります。

例えば、イベントリスナーを複数設定することで、複数の要素に対して同時に操作を行ったり、別のイベントと組み合わせて複雑な処理を実現することが可能です。

まとめ

この記事では、JavaScriptを使ったプルダウン選択イベントの基本的な使い方や応用例について説明しました。

プルダウン選択イベントは、ウェブページのインタラクティブ性を高めるために非常に役立つ機能です。

プルダウン選択イベントをマスターすることで、ウェブページのユーザビリティを向上させることができます。

今回学んだ知識を活用して、自分のプロジェクトに取り入れてみてください。