【问题标题】:How to change states of all checkboxes (in all pages) when clicked selectAll checkbox [using jQuery datatable]单击selectAll复选框时如何更改所有复选框(在所有页面中)的状态[使用jQuery数据表]
【发布时间】:2015-09-01 08:45:20
【问题描述】:

我正在尝试通过添加复选框列来修改 jQuery 数据表。我的表由多个页面组成。我想添加一个全选复选框,当我单击它时,它需要选择所有页面中的所有复选框。我的问题是,目前它只选择当前页面上的复选框。

这是我的html代码:

<div id="results_table">

  <h3>Results</h3>
        <div>
        <h5 style="float:left;">Results - Table</h5>
        <button id="download-json" class="btn" style="float:right;"><i class="icon-download"></i> Get JSON</button>
        <button id="download-csv" class="btn" style="float:right;"><i class="icon-download"></i> Get CSV</button>
        </div>
        <br>
        <table id="example" class="display" width="100%"></table>
        <div id="results_container">

        <p>Execute a query first!</p>

        </div>
    </div>

【问题讨论】:

    标签: javascript jquery checkbox


    【解决方案1】:

    如果我理解你的话,你需要存储复选框状态以在另一个页面加载时应用(或者你有一个 SPI 网络?)

    您可以使用 Javascript 存储在sessionStorage

    var storage = window.sessionStorage; // initialize storage object
    
    $('input[type="checkbox"][name="selectAll"]').click(function(){
        if($(this).prop("checked") == true){
            $(':checkbox').each(function() {
                this.checked = true;
                storage.setItem("checkALL", true); // save state
            });
        }
        else if($(this).prop("checked") == false){
            $(':checkbox').each(function() {
                this.checked = false;  
                storage.setItem("checkALL", false);  //save state
            });
        }
    });
    

    当你加载另一个页面时,你可以在加载事件中处理

    $(document).ready(function() {
         var storage = window.sessionStorage;
         $('input[type=checkbox]').each(function() {
             $(this).prop('checked', storage.getItem("checkALL")); // set state
         });
    });
    

    【讨论】:

    • 您好,感谢您的回答。不幸的是,虽然我用你的替换了我的 .click 函数并添加了 .ready() 函数,但我的问题并没有解决。我还需要更改其他内容吗? @Marcos_Pérez_Gude
    • 你在哪里插入ready函数?请注意,当加载新页面(链接、刷新等)时,可能会加载这段代码。您的控制台出现任何错误?请更具体一些,以便为您提供帮助。我只是在猜测你的问题。我的答案中的代码必须有效
    • 我在 .click 函数下添加了就绪函数。错了吗?顺便说一句,我没有收到任何错误或警告
    • 那么,你用ajax分页吗?或者您正在加载新页面?就绪功能仅适用于新页面。如果是ajax技术分页,必须在加载内容数据后添加
    • 请说得更具体一些。您需要告诉我们每一个细节,否则我们无法帮助您。我给你一个有效的答案,但也许你需要适应你的项目。
    猜你喜欢
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多