刷新窗口后,下拉列表不会保持选中状态

时间:2013-11-11 11:52:09

标签: javascript jquery ruby-on-rails html5

我有一个下拉列表,如下:

    <select class="span2" id ="sort" name= "order_by">
           <option >Default</option>
           <option >Price</option>
           <option >Color</option>
    </select>

我有改变事件处理程序:

$('select#sort').change(

  function(){       
    $(this).closest('form').trigger('submit');
  });

当我从下拉列表中选择价格时,价格应保持选中但刷新窗口后没有发生。我在轨道上使用ruby。

我不知道这里发生了什么。

有没有人可以指导我?

谢谢

3 个答案:

答案 0 :(得分:2)

您可以使用以下(Javascript / jQuery解决方案):

$(document).ready(function(){
    var selected_val = localStorage.getItem("sort");
    $("#sort").val(selected_val);//This would set the value from local-storage as selected value

    $("#sort").change(function(){
       var selected =  $("#sort").val();
       localStorage.setItem("sort", selected);//Setting the selected value in localstorage
       $(this).closest('form').trigger('submit');
    });
});

请注意:如果您通过数据库填充,那么在呈现页面模板时,您应该添加selected属性,或者只是将该特定值添加为localstorage值。 < / p>

希望你能得到这个想法。

答案 1 :(得分:0)

您必须将值存储在服务器端的任何位置,因此当重新呈现页面时,将根据所选值自动选择值

答案 2 :(得分:0)

使用Rails select_tag helper而不是javascript

<%= select_tag(:order_by, options_for_select([['Default', 'Default'], ['Price', 'Price'], ['Color', 'Color']], selected: params[:order_by] )) %>