【问题标题】:Record checkbox values on change在更改时记录复选框值
【发布时间】:2013-06-06 13:37:39
【问题描述】:

我有一个函数,当复选框被更改时,我需要将复选框的值记录为关联数组的键。这部分并不难。我还有一个“检查所有”按钮。这就是问题所在。我不确定如何让检查所有按钮执行与单个单元相同的操作。

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;
    }
});

还有可能还有其他“隐藏的复选框”(或包含值的隐藏输入)将成为数组的一部分,因此我不能简单地将每个值更改为真或假,只是那些与 @987654322 相关的值@

【问题讨论】:

    标签: jquery checkbox


    【解决方案1】:

    您将不得不遍历并设置值:

    //checking ALL the boxes
    $("input:checkbox").each(function(e) {
        checkstatus[this.value] = true;
    });
    
    //unchecking
    $("input:checkbox").each(function(e) {
        checkstatus[this.value] = false;
    });
    

    【讨论】:

    • 啊哈,.each() 函数正是我想要的!太棒了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多