我有一个函数,只要复选框被更改,我就需要将复选框的值记录为关联数组的键。这部分并不难。我还有一个“全部检查”按钮。这是问题所在。我不确定如何让check all按钮执行与单个单元相同的操作。
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,只是将那些值更改为{{{ 1}}
答案 0 :(得分:3)
您将不得不迭代并设置值:
//checking ALL the boxes
$("input:checkbox").each(function(e) {
checkstatus[this.value] = true;
});
//unchecking
$("input:checkbox").each(function(e) {
checkstatus[this.value] = false;
});