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