0

チェックボックスが変更されるたびに、チェックボックスの値を連想配列のキーとして記録する必要がある関数があります。この部分は難しくありませんでした。「すべてチェック」ボタンもあります。これが問題です。すべてのボタンをチェックして、個々のユニットと同じように実行する方法がわかりません。

var allchecked = false;
var checkstatus = [];

$(".check-all-button").click(function(e) {
    e.preventDefault();
    if (allchecked == false) {
        $("input:checkbox").attr("checked", "checked");
        $(".check-all-button").html("Uncheck All");
        allchecked = true;
        // Update checkstatus array here to [val] = true for all checkboxes
    } else {
        $("input:checkbox").removeAttr("checked");
        $(".check-all-button").html("Check All");
        allchecked = false;
        // Update checkstatus array here to [val] = false for all checkboxes
    }
});

$("input:checkbox").change(function(e) {
    if ($(this).is(":checked")) {
        checkstatus[this.value] = true;
    } else {
        checkstatus[this.value] = false;
    }
});

配列の一部になる他の「非表示のチェックボックス」(または値を保持する非表示の入力) が存在する可能性もあるため、すべての値を単純に true または false に変更することはできません。input[type=checkbox]

4

1 に答える 1