javascript - 页面重新加载时保留所选选项值

标签 javascript html jquery

我想在页面刷新后保留所选选项。 我的代码是:

window.onload = function() {
  var selItem = sessionStorage.getItem("SelItem");
  jQuery('#me2000 .term').val(selItem);
}
jQuery('#me2000 .term').change(function() {
  var selVal = jQuery(this).val();
  sessionStorage.setItem("SelItem", selVal);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<div id="me2000">
  <select id="sort-item" class="term">
    <option value="option 1" data-sort="1">option 1</option>
    <option value="option 2" data-sort="2">option 2</option>
    <option value="option 3" data-sort="3">option 3</option>
  </select>
  <select id="sort-item2" class="term">
    <option value="option 4" data-sort="4">option 4</option>
    <option value="option 5" data-sort="5">option 5</option>
    <option value="option 6" data-sort="6">option 6</option>
  </select>
</div>

一个<select>标记此代码有效。但对于两个人<select>不工作。 有人可以帮助我吗?

最佳答案

试试这个

按照指示取消注释和评论

DEMO

// remove this on your server
let selItems = [{ "sort-item": "option 2" }, { "sort-item2": "option 5" } ];
// uncomment this
// let selItems = JSON.parse(sessionStorage.getItem("SelItem")) || [];  

$(function() {
  if (selItems) {
    selItems.forEach(obj => {
      const [k, v] = Object.entries(obj)[0]
      $("#" + k).val(v)
    })
  }
  $('.term').on("change", function() {
    selItems = $('.term').map(function() {
      return { [this.id]: this.value }
    }).get();
  // remove this
  console.log(selItems);
  // uncomment this on your server
  // sessionStorage.setItem("SelItem", JSON.stringify(selItems))

  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="me2000">
  <select id="sort-item" class="term">
    <option value="option 1" data-sort="1">option 1</option>
    <option value="option 2" data-sort="2">option 2</option>
    <option value="option 3" data-sort="3">option 3</option>
  </select>
  <select id="sort-item2" class="term">
    <option value="option 4" data-sort="4">option 4</option>
    <option value="option 5" data-sort="5">option 5</option>
    <option value="option 6" data-sort="6">option 6</option>
  </select>
</div>

关于javascript - 页面重新加载时保留所选选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62595642/

相关文章:

javascript - 结合 AngularJS、RequireJS 和 asp.NET 时出错

javascript - A-Frame appendChild 在 Firefox 中有效,但在 Chrome 中无效

javascript - Accordion 标题子项的停止单击、Enter 和箭头键

html - 导航面板粘在屏幕顶部的问题

javascript - Greasemonkey 未捕获引用错误 : initScript is not defined in Chrome only

jquery - 使用 daterangepicker 过滤数据表

jquery - 如果 TD 具有 rowSpan 属性,则将类应用于 TD

javascript - 移动剪裁的 Canvas

javascript - 如何使用 jQuery UI 选择菜单创建自定义颜色选择器下拉菜单?

javascript - 使用appendchild和html表的乘法表