【问题标题】:select drop down on change reload reverts to first option选择下拉更改重新加载恢复到第一个选项
【发布时间】:2015-06-14 13:33:17
【问题描述】:

我有一个选择下拉菜单,当我选择一个值时我想刷新页面。

问题是只有firefox保留选择的值 chrome 和 IE 会重新加载,但它们会恢复为第一个选项

<select id="combobox1" onchange="location.reload()">
<option value="YTD">YTD</option>
<option value="QTD">QTD</option>
<option value="MTD">MTD</option>
</select>

【问题讨论】:

  • 它的工作here
  • @Kartikeya 不在 chrome 中它没有....
  • 为什么还要重新加载页面?除非您在 url 中保留一个表单“状态”(例如在主题标签或其他内容中)编码,否则它将无法正常工作,但是,只需执行 ajax 调用并且不要重新加载页面。
  • @tripleb 刷新页面的原因可能有很多,并且有多种方法可以重置所选值
  • 使用本地存储。参考here

标签: javascript jquery css html


【解决方案1】:

我会使用localStorage 来存储页面加载之间的值:

Working jsFiddle

$(function() {
    if(localStorage.getItem('combobox1')){
        $('#combobox1').val(localStorage.getItem('combobox1'));
    }

    $('#combobox1').change(function(){
        localStorage.setItem('combobox1',$('#combobox1').val() );
        location.reload();
    });
});

......

<select id="combobox1" >
<option value="YTD">YTD</option>
<option value="QTD">QTD</option>
<option value="MTD">MTD</option>
</select>

【讨论】:

    【解决方案2】:

    如果您已经在表单中编写了此下拉菜单,请在调用 reload 方法之前提交表单。

    即 onchange="this.form.submit();location.reload()"

    【讨论】:

    • OP 正在尝试在页面加载时重新选择先前选择的值,这不会这样做
    • 如果您提交表单,下拉值将与新选择的值一起保存。因此,在重新加载时,它将采用新值。
    • 很公平,但是你会在 IE 中看到这个讨厌的弹出窗口:prntscr.com/6rireg,而在 Firefox 中看到这个:prntscr.com/6rissq
    猜你喜欢
    • 2020-10-10
    • 2021-09-08
    • 2018-08-05
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 2013-06-28
    • 1970-01-01
    相关资源
    最近更新 更多