will_paginate在更改页面时销毁已保存的ID

时间:2013-08-05 11:40:30

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

我使用will_paginate列出大量文件。我还有一个check_box,以便为进一步分析选择文件。 要在更改我在javascript后使用的页面时保存cookie中的ID:

 <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? 非常感谢。

1 个答案:

答案 0 :(得分:0)

使用你的第一个例子,而不是这一行:

var checkedIds = []

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

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

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