0

膨大な数のファイルを一覧表示するために 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 も保存するにはどうすればよいですか? どうもありがとう。

4

1 に答える 1

0

最初の例を使用しますが、次の行の代わりに:

var checkedIds = []

2 番目の例のこの行を使用します。

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

最初の例で見られる問題は、以前に保存した ID を Cookie からロードしないことです。では、2 ページ目でいくつかチェックすると、以前の値が上書きされます。

于 2013-08-05T17:01:16.687 に答える