Javascript 窗体上具有默认值的会话存储

Javascript 窗体上具有默认值的会话存储,javascript,jquery,Javascript,Jquery,我有一个表单,其中有一个默认值名称“Alex”。我的目标是通过会话存储保存对表单所做的任何更改。看起来我的存储已保存在浏览器上,但我的值未在表单中更新。在页面刷新时,它会一直返回默认值“Alex”。如果我的值存储在浏览器上,我不知道为什么会发生这种情况。我的事件处理程序是正确的方法吗? JS小提琴: document.addEventListener(“变更”,(evt)=>{ const save_name=document.getElementById(“name”).value; ses

我有一个表单,其中有一个默认值名称“Alex”。我的目标是通过会话存储保存对表单所做的任何更改。看起来我的存储已保存在浏览器上,但我的值未在表单中更新。在页面刷新时,它会一直返回默认值“Alex”。如果我的值存储在浏览器上,我不知道为什么会发生这种情况。我的事件处理程序是正确的方法吗? JS小提琴:

document.addEventListener(“变更”,(evt)=>{
const save_name=document.getElementById(“name”).value;
sessionStorage.getItem(“名称”);
setItem(“名称”,保存名称);
});

名字

您正在会话存储中保存,但如果会话存储中有任何值,则不会更新页面加载的值。 添加下面的代码

$(document).ready(function() {
  const name = sessionStorage.getItem("name");
  if(name){
   document.getElementById("name").value = name
  }
})

我认为这种方法是可以的,但问题是您已经在HTML中设置了输入框的值,但是您并没有真正使用sessionStorage中存储的值更新该值

因此,请使用以下代码查看更改:

let sname = sessionStorage.getItem("name");
let name = document.getElementById("name");
if(sname) {
    name.value = sname;
}
document.addEventListener("change", (evt) => {
  const save_name = name.value;
  console.log(sessionStorage.getItem("name"));
  sessionStorage.setItem("name", save_name);

});

这是有帮助的,并按预期工作,谢谢!