Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将在更改页面时销毁保存的ID_Javascript_Ruby On Rails_Checkbox_Will Paginate - Fatal编程技术网

Javascript 将在更改页面时销毁保存的ID

Javascript 将在更改页面时销毁保存的ID,javascript,ruby-on-rails,checkbox,will-paginate,Javascript,Ruby On Rails,Checkbox,Will Paginate,我使用will_paginate来列出大量文件。我还有一个复选框,以便选择文件进行进一步分析。 要在更改页面时将ID保存在cookie中,我使用了以下javascript: <script src="/assets/jquery.cookie.js" type="text/javascript"></script> <script type="text/javascript"> var checkedIds = [] $('.check

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

 <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>

var checkedds=[]
$('.checkmeplease')。在(“change”,function(){
如果($(this).is(':checked')){
checkedds.push($(this.val())
}
否则{
checkedds.splice(checkedds.indexOf($(this.val()),1);
}
$.cookie('checked_file_id',checkedId,{path:'/'});
});
我的复选框:

 <% @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>

var checkedds=$.cookie('checked_file_id');
$('p td input[type=checkbox]')。在('change',函数(){
如果($(this).is(':checked')){
checkedds.push($(this.val())
}
否则{
checkedds.splice(checkedds.indexOf($(this.val()),1);
}
$.cookie('已检查的文件ID',已检查的EDID);
})
但是,
$('p td input[type=checkbox]')。在('change',函数()
似乎不起作用

我的错误在哪里?如何保存前几页的ID?
非常感谢。

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

var checkedIds = []
使用第二个示例中的这一行

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

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

是的,我没有加载它,因为我不确定如何检测页面是否已切换,以便在加载以前保存的ID之前可以加载。我不知道h如果我使用var checkedds=$.cookie('checked_file_id'),它会给我一个错误,没有定义checkedds