JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで選択リスト(セレクトボックス)の値が配列に含まれるか判定してコンソールに出力する方法

Webアプリケーションを開発していると、ドロップダウンリスト(<select>要素)で選択された値が、あらかじめ用意したJavaScriptの配列に含まれているかどうかを判定したい場面があります。本記事では、jQueryのchangeイベントと$.inArray()メソッドを使って、この判定を行い結果をコンソールに表示する方法を解説します。

サンプルとして使用するドロップダウンリスト

まず、以下のような選択リストを想定します。

<select>
   <option>John</option>
   <option>David</option>
   <option>Chris</option>
   <option>Mike</option>
   <option>Bob</option>
   <option>Carol</option>
</select>

次に、比較対象となる配列を用意します。

var listOfNames = ["Chris", "Robert", "Mike"];

選択リストの値が配列に含まれているか確認する方法

ユーザーがリストから値を選択したタイミングで判定を行うには、jQueryのchangeイベントを利用します。

$('select').on('change', function() { ... });

イベントハンドラ内では、選択された値を取得し、jQueryの$.inArray()メソッドを使って配列内に存在するかどうかをチェックします。$.inArray()は、値が見つかった場合はそのインデックス番号(0以上)、見つからなかった場合は -1 を返すため、戻り値が -1 より大きいかどうかで判定できます。

完全なコード例

以下に、動作する完全なHTMLコードを示します。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<select>
<option>John</option>
<option>David</option>
<option>Chris</option>
<option>Mike</option>
<option>Bob</option>
<option>Carol</option>
</select>
<script>
    var listOfNames = ["Chris", "Robert", "Mike"];
    $('select').on('change', function() {
        var name = this.value.split(' ')[0];
        if($.inArray(name, listOfNames) > -1) {
            console.log('この名前は配列に存在します');
        } else {
            console.log('この名前は配列に存在しません');
        }
    });
</script>
</body>
</html>

コードのポイント

  • this.value.split(' ')[0]:選択された値に空白が含まれていても、最初の単語だけを取り出して比較できるようにしています。
  • $.inArray(name, listOfNames):第一引数の値が第二引数の配列内に存在するかを調べます。
  • > -1 の条件分岐:値が見つかれば「存在する」、見つからなければ「存在しない」というメッセージをコンソールに出力します。

プログラムの実行方法

上記のコードを「index.html」などのファイル名で保存し、VS Codeをお使いの場合はファイルを右クリックして「Open with Live Server」を選択すると、ブラウザ上で簡単に実行できます。

実行結果

ブラウザでページを開くと、まず以下のような選択リストが表示されます。

JavaScriptで選択リスト(セレクトボックス)の値が配列に含まれるか判定してコンソールに出力する方法

ここで任意の値を選択してみましょう。例えば配列に含まれている「Chris」や「Mike」を選択した場合は、コンソールに「この名前は配列に存在します」と表示され、「John」など配列に含まれていない値を選んだ場合は「この名前は配列に存在しません」と表示されます。

JavaScriptで選択リスト(セレクトボックス)の値が配列に含まれるか判定してコンソールに出力する方法

このように、jQueryのchangeイベントと$.inArray()を組み合わせることで、選択リストの値と配列の照合を簡単に実装できます。フォームのバリデーションや動的なコンテンツ制御など、さまざまな場面で活用できるテクニックなので、ぜひ覚えておきましょう。

  1. ドロップダウン(select要素)で選択された値をJavaScriptのコンソールに表示する方法

    Web開発では、ドロップダウン(select要素)でユーザーが選択した値を取得して処理する場面がよくあります。本記事では、選択された値をJavaScriptのコンソールに表示する方法を、具体的なコード例とともに解説します。ドロップダウンのHTML例まず、以下のようなドロップダウン(select要素)を用意します。ここでは、onchangeイベントを使って、選択が変更されるたびに関数を呼び出す構成にしています。<select onchange=selectedSubjectName() id=subjectName>    <option>J

  2. CSSのappearanceプロパティでセレクトボックスのドロップダウン矢印を非表示にする方法

    CSSのappearanceプロパティを使うと、要素をユーザーのOSが持つプラットフォームネイティブなスタイルに合わせて表示できます。このプロパティをnoneに設定することで、ブラウザがデフォルトで表示するUI部品(ドロップダウン矢印やスピンボタンなど)を非表示にすることが可能です。appearanceプロパティの構文CSSのappearanceプロパティは、以下のように記述します。Selector {     appearance: /*値*/;     -webkit-appearance: /*値*/; /*