【问题标题】:will_paginate destroys saved ids while changing the pagewill_paginate 在更改页面时销毁保存的 id
【发布时间】:2013-08-06 02:34:04
【问题描述】:

我使用 will_paginate 来列出大量文件。我还有一个复选框,以便为进一步分析选择文件。 在更改我使用以下 javascript 的页面时将 id 保存在 cookie 中:

 <script src="/assets/jquery.cookie.js" type="text/javascript"></script>
          <script type="text/javascript">
var checkedIds = []

$('.checkmeplease').on("change", function(){ 

   if($(this).is(':checked')) {
       checkedIds.push($(this).val())

   }
    else  {
       checkedIds.splice(checkedIds.indexOf($(this).val()), 1);

   }
    $.cookie('checked_file_ids', checkedIds,{path:'/'});
 });


 </script>

我的复选框:

 <% @files.each do |file| %>   
 <p><td> <%= check_box_tag "files[]", file.id,false,:class=>'checkmeplease'  %></td>&nbsp;&nbsp;<%= file.name %></p> 
 <%end%>

它会保存 ID,但是当我使用 will_pagination 更改页面时,保存的 ID 会消失。

我也被介绍了这段代码:

<script type="text/javascript">
var checkedIds = $.cookie('checked_file_ids');
$('p td input[type=checkbox]').on('change', function () {
   if($(this).is(':checked')) {
       checkedIds.push($(this).val())
   }
    else  {
       checkedIds.splice(checkedIds.indexOf($(this).val()), 1);
   }
    $.cookie('checked_file_ids', checkedIds);
})

 </script>

$('p td input[type=checkbox]').on('change', function () 似乎不起作用。

我的错误在哪里?我怎样才能保存以前页面中的 ID? 非常感谢。

【问题讨论】:

    标签: javascript ruby-on-rails checkbox will-paginate


    【解决方案1】:

    使用您的第一个示例,但不要使用这一行:

    var checkedIds = []
    

    使用第二个示例中的这一行。

    var checkedIds = $.cookie('checked_file_ids');
    

    我在第一个示例中看到的问题是您从未从 cookie 中加载以前保存的 id。所以,到第二页,当你检查一些时,你会覆盖以前的值。

    【讨论】:

    • 是的,我不加载它,因为我不知道如何检测页面是否被切换,这样我就可以在加载之前保存的ID之前。而且我也不知道如何消除这些页面
    • 如果我使用 var checkedIds = $.cookie('checked_file_ids');它给了我一个错误,checkedIds 没有定义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2011-03-11
    • 2018-06-05
    • 2019-09-29
    • 1970-01-01
    • 2018-03-12
    • 2013-04-01
    相关资源
    最近更新 更多