我有一个下拉列表,如下:
<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。
我不知道这里发生了什么。
有没有人可以指导我?
谢谢
答案 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] )) %>