Javascript 当按下后退按钮时,在HTML中再次显示隐藏元素
我有一个简单的HTML代码,在用户选择“是”时显示隐藏的元素。我在这段代码中面临的问题是: 用户提交并按下浏览器上的“后退”按钮后,仍显示“是”,但不显示隐藏元素。用户必须单击“否”,然后重新选择“是”,数据才能再次显示。如何解决这个问题? 一些头衔 函数加载{ document.getElementById'YesOrNo'.onchange=函数e{ 如果this.value==“是”{ document.getElementById'Details.style.display=; }否则{ document.getElementById'Details.style.display='none'; } }; } 欢迎来到ABC YesOrNo? 不 对 一些隐藏的数据 待会儿见Javascript 当按下后退按钮时,在HTML中再次显示隐藏元素,javascript,html,Javascript,Html,我有一个简单的HTML代码,在用户选择“是”时显示隐藏的元素。我在这段代码中面临的问题是: 用户提交并按下浏览器上的“后退”按钮后,仍显示“是”,但不显示隐藏元素。用户必须单击“否”,然后重新选择“是”,数据才能再次显示。如何解决这个问题? 一些头衔 函数加载{ document.getElementById'YesOrNo'.onchange=函数e{ 如果this.value==“是”{ document.getElementById'Details.style.display=; }否
我已经看过你的代码,但我认为有一个问题。您已经基于onchange事件创建了一个函数,这非常好。但是如果页面返回,则不会调用该事件,这意味着不会调用该函数。因此,未设置display属性,这意味着内容保持隐藏状态。我查看了您的代码,但我认为存在问题。您已经基于onchange事件创建了一个函数,这非常好。但是如果页面返回,则不会调用该事件,这意味着不会调用该函数。因此,未设置display属性,这意味着内容保持隐藏。从您的代码中,我认为当您提交表单时,您会移动到一个新页面。我不知道它是什么页面,但当我尝试时,它是我的目录索引。当您点击“后退”按钮时,网页将再次被重新加载,也就是说,它的状态不会被保留。因此,我认为没有办法处理这个问题,除非你能在浏览器中存储一些关于前一个状态的信息 如果你这么有兴趣这么做,我可以给你一个解决方案。但不确定这是否是处理此场景的标准方法。 我的方法是使用和存储状态值
function onload() {
data = localStorage.getItem("details")
if(data === "yes"){
document.getElementById('Details').style.display='';
document.getElementById('YesOrNo').value="Yes"
}
document.getElementById('YesOrNo').onchange = function (e) {
if (this.value == 'Yes') {
document.getElementById('Details').style.display='';
localStorage.setItem("details","yes")
} else {
document.getElementById('Details').style.display='none';
localStorage.setItem("details","no")
}
};
}
我们在这里做的是,每当用户选择Yes时,我们都将其存储在localStorage中。同样的,也没有。调用onload函数时,我们检查localStorage值。如果是,则显示所需内容。根据您的代码,我认为当您提交表单时,您会移动到一个新页面,我不知道它是什么页面,但当我尝试时,它是我的目录索引。当您点击“后退”按钮时,网页将再次被重新加载,也就是说,它的状态不会被保留。因此,我认为没有办法处理这个问题,除非你能在浏览器中存储一些关于前一个状态的信息
如果你这么有兴趣这么做,我可以给你一个解决方案。但不确定这是否是处理此场景的标准方法。
我的方法是使用和存储状态值
function onload() {
data = localStorage.getItem("details")
if(data === "yes"){
document.getElementById('Details').style.display='';
document.getElementById('YesOrNo').value="Yes"
}
document.getElementById('YesOrNo').onchange = function (e) {
if (this.value == 'Yes') {
document.getElementById('Details').style.display='';
localStorage.setItem("details","yes")
} else {
document.getElementById('Details').style.display='none';
localStorage.setItem("details","no")
}
};
}
我们在这里做的是,每当用户选择Yes时,我们都将其存储在localStorage中。同样的,也没有。调用onload函数时,我们检查localStorage值。如果是,显示您想要的。嘿!你能为上述问题提供一个合适的解决方案吗?我是这个领域的新手,似乎无法找到解决办法。提前谢谢!嘿你能为上述问题提供一个合适的解决方案吗?我是这个领域的新手,似乎无法找到解决办法。提前谢谢!非常感谢,先生!这起作用了。我根据需要将本地存储更改为会话存储!我很高兴这有帮助。好兄弟,谢谢你,先生!这起作用了。我根据需要将本地存储更改为会话存储!我很高兴这有帮助。所有最好的兄弟。