JavaScript - チェックボックスの選択状態を取得する checked

JavaScript でチェックボックス選択されているかどうかを取得したい場合は、 checked プロパティを利用します。 checked プロパティの値は、チェック時に true、非チェック時に false となります。

ここでは、単一のチェックボックス、複数のチェックボックスの状態を取得する方法を解説します。

チェックボックスの基本

HTMLでのチェックボックスの実装

チェックボックスは、HTMLのフォーム要素の一つで、ユーザーに複数の選択肢から一つ以上を選ばせるのに適しています。チェックボックスを実装するには、<input>タグを使用し、type属性を"checkbox"に設定します。

基本的な構文は以下の通りです:

<input type="checkbox" name="option" value="value1"> ラベルテキスト

複数のチェックボックスをグループ化する場合は、以下のように記述します:

<form>
<input type="checkbox" name="fruit" value="apple"> りんご
<input type="checkbox" name="fruit" value="banana"> バナナ
<input type="checkbox" name="fruit" value="orange"> オレンジ
</form>

チェックボックスの属性

チェックボックスには、いくつかの重要な属性があります:

  1. checked属性: チェックボックスを初期状態でチェックされた状態にします。
    <input type="checkbox" name="option" value="value1" checked> オプション1
  2. value属性: チェックボックスが選択された際にサーバーに送信される値を指定します。
  3. name属性: フォームデータを送信する際に使用される名前を指定します。
  4. disabled属性: チェックボックスを無効化します。
    <input type="checkbox" name="option" value="value2" disabled> オプション2

JavaScriptでチェックボックスの状態を取得する

単一のチェックボックスの状態を取得する方法

JavaScriptを使用して単一のチェックボックスの状態を取得するには、checkedプロパティを使用します。

const checkbox = document.querySelector('input[type="checkbox"]');
if (checkbox.checked) {
console.log('チェックボックスは選択されています');
} else {
console.log('チェックボックスは選択されていません');
}

複数のチェックボックスの状態を取得する方法

複数のチェックボックスの状態を取得する場合、querySelectorAllメソッドを使用してすべてのチェックボックスを取得し、ループ処理で各チェックボックスの状態を確認します。

const checkboxes = document.querySelectorAll('input[type="checkbox"]');
const selectedValues = [];

checkboxes.forEach(checkbox => {
if (checkbox.checked) {
    selectedValues.push(checkbox.value);
}
});

console.log('選択された値:', selectedValues);

この方法を使用すると、選択されたすべてのチェックボックスの値を配列として取得できます。

チェックボックスの状態変更をリアルタイムで監視したい場合は、イベントリスナーを使用します:

checkboxes.forEach(checkbox => {
checkbox.addEventListener('change', function() {
    if (this.checked) {
        console.log(this.value + 'が選択されました');
    } else {
        console.log(this.value + 'の選択が解除されました');
    }
});
});

このコードは、各チェックボックスの状態が変更されるたびに、コンソールにメッセージを表示します。

以上の方法を使用することで、HTMLでチェックボックスを実装し、JavaScriptでその状態を効果的に管理することができます。