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