刷新窗口后,下拉列表未保持选中状态
Dropdown list is not remain selected after refreshing the window
我有一个像下面这样的下拉列表:
<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');
});
当我从下拉列表中选择价格时,价格应该保持选中状态,但在刷新窗口后不会发生。我在轨道上使用红宝石.
我不知道这里发生了什么。
有没有人可以指导我?
谢谢
您可以使用以下内容(Javascript/jQuery Solution):
$(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 值。
希望你明白这个想法。
您必须将值存储在服务器端的任何位置,因此当页面重新呈现时,将根据所选值自动选择值
使用 Rails select_tag helper 而不是 javascript
<%= select_tag(:order_by, options_for_select([['Default', 'Default'], ['Price', 'Price'], ['Color', 'Color']], selected: params[:order_by] )) %>
相关文章:
- Extjs 4在父窗口关闭时保存checkboxGroup的状态
- 即使我单击“确定”,模型弹出窗口扩展器仍保持打开状态
- 如何将参数传递到 UI 路由器状态的模式窗口
- 在弹出窗口中显示状态
- 使用AngularJS ui路由器创建类似弹出窗口的状态
- AJAX查询处于活动状态时禁用窗口大小调整
- Webpack--在窗口中处于热状态而未重建捆绑包
- 如何在Github电子原子中禁用或使浏览器窗口处于非活动状态
- 刷新窗口后,下拉列表未保持选中状态
- 在窗体中捕获窗口状态
- 打开打印窗口处于活动状态的 PDF 链接
- 弹出窗口处于活动状态时禁用滚动
- 仅在一个窗口中播放声音,该窗口使用javascript(可能是jquery)处于活动状态(在一个网站内)
- 打开新页面时保持弹出窗口打开状态
- JS弹出窗口打开并在另一个页面上检查其状态
- 在导航到新页面时,使 Chrome 扩展程序弹出窗口保持打开状态
- 通过jquery或javascript中的cookie记住聊天窗口状态
- 如何创建与父窗口状态相同的新窗口
- 在Chrome扩展弹出窗口中保持Flash元素处于活动状态
- 是否有任何方法可以检测IE8中该窗口当前处于活动状态