【问题标题】:Select all checkbox only works visually全选复选框仅在视觉上有效
【发布时间】:2017-11-04 23:32:21
【问题描述】:

我在侧边栏中为该表的每一列创建了一个表格和一个复选框,以显示或隐藏该列以及一个全选复选框。

问题是所有复选框都可以正常工作,但全选复选框只能在视觉上工作,它会检查所有复选框,但不会按应有的方式显示或隐藏所有列。

这是复选框代码:

$(document).ready(function() {
    $("input:checkbox:not(:checked)").each(function() {
        var column = "table ." + $(this).attr("name");
        $(column).hide();
    });

    $("input:checkbox").click(function() {
        var column = "table ." + $(this).attr("name");
        $(column).toggle();
    });
});

并选择所有复选框代码:

$('#select-all').on('change', function (e) {
    var $inputs = $('#checkboxlist input[type=checkbox]');
    if (e.originalEvent === undefined) {
        var allChecked = true;
        $inputs.each(function () {
            allChecked = allChecked && this.checked;
        });
        this.checked = allChecked;
    } else {
        $inputs.prop('checked', this.checked);
    }
});

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    第一个:直到Difference between change and click event of checkbox,您需要将点击事件替换为更改事件

    $("input:checkbox").change(function() {
        var column = "table ." + $(this).attr("name");
        $(column).toggle();
    });
    

    第二个:直到trigger the change event,您需要使用.change().trigger('change')

    $inputs.prop('checked', this.checked).change();
    

    【讨论】:

    • @MiLaDA 添加更改事件,然后使用$inputs.prop('checked', this.checked).trigger('change')$inputs.prop('checked', this.checked).change()
    • 谢谢 Basti 和 Mohamed,更改点击事件并最终触发更改事件是解决方案 :)
    • @Mohamed-Yousef 为什么要删除隐藏/显示部分?我认为这对他的用例很重要!
    • 抱歉,Basti 我编辑了您的答案,以使 @MiLaDA 的一切都清楚,未来任何人都会来......祝 Basti 和 MiLaDA 有美好的一天
    • Basti 它不是一个重要的部分,它只是更多的代码.. 当他/她已经在他/她的代码上使用.toggle() 时,他/她不需要做其他动作.. 清楚,具体说明OP带来的问题..获得良好声誉会很好..祝你好运:)
    【解决方案2】:
    $("input:checkbox").on('change',function() {
    

    这应该可以正常工作...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 2016-01-29
      • 1970-01-01
      • 2019-02-13
      • 2011-06-16
      • 1970-01-01
      相关资源
      最近更新 更多