😀

全てにチェックを入れるチェックボックスの作り方【JavaScript】

2024/03/05に公開

メモ

<div class="checks-all">
    <label for="checksAll">
        <div>
            <input type="checkbox" id="checksAll">
        </div>
    </label>
    全て選択
</div>

<label for="1">
    <div>
        <input type="checkbox" name="team[]" id="1" value="1">
    </div>
</label>

<label for="2">
    <div>
        <input type="checkbox" name="team[]" id="2" value="2">
    </div>
</label>

<label for="3">
    <div>
        <input type="checkbox" name="team[]" id="3" value="3">
    </div>
</label>

下記JavaScript

const checkall = document.getElementById("checksAll");
const teamChecks = document.querySelectorAll('input[name="team[]"]');

function updateCheckAllStatus() {
    const allChecked = Array.from(teamChecks).every(checkbox => checkbox.checked);
    checkall.checked = allChecked;
}

// ページ読み込み時にチェック状態を更新
document.addEventListener('DOMContentLoaded', updateCheckAllStatus);

// 全て選択のチェックボックスがクリックされた時
checkall.addEventListener('click', () => {
    for (val of teamChecks) {
        val.checked = checkall.checked;
    }
});

// 個別のチェックボックスがクリックされた時
teamChecks.forEach(element => {
    element.addEventListener('click', () => {
        if (!element.checked) {
            checkall.checked = false;
        } else {
            updateCheckAllStatus();
        }
    });
});

Discussion