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

Javascript 刷新窗口后,下拉列表不会保持选中状态,javascript,jquery,ruby-on-rails,html,Javascript,Jquery,Ruby On Rails,Html,我有一个下拉列表,如下所示: <select class="span2" id ="sort" name= "order_by"> <option >Default</option> <option >Price</option> <option >Color</option> </select> 当我从下拉列表中选择

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

    <select class="span2" id ="sort" name= "order_by">
           <option >Default</option>
           <option >Price</option>
           <option >Color</option>
    </select>
当我从下拉列表中选择价格时,价格应保持选中状态,但在刷新窗口后不会发生。我使用的是ruby on rails

我不知道这里发生了什么

有人能指引我吗


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

使用Rails select_标记帮助程序而不是javascript

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

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

请注意:如果您是通过数据库填充的,那么在呈现页面模板时,您应该添加
选定的
属性,或者只添加该特定值作为本地存储值。


希望你能明白

在页面加载时,从localstorage获取值并动态添加所选属性。然后在更改选择框时,添加代码以编辑localstorage值。。希望你能理解我的想法。我对jquery和javasrcipt不太熟悉,所以要做到这一点有点困难。你有@RoyMJ的示例代码吗。我试了一下。。使用@rubysti提供的ruby解决方案也尝试了您的解决方案,但我遇到了此错误未初始化常量ActionView::CompiledTemplates::DefaultNow try,因为所有这些都是字符串值,所以放在单引号中
<%= select_tag(:order_by, options_for_select([['Default', 'Default'], ['Price', 'Price'], ['Color', 'Color']], selected: params[:order_by] )) %>
$(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');
    });
});