Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当按下后退按钮时,在HTML中再次显示隐藏元素_Javascript_Html - Fatal编程技术网

Javascript 当按下后退按钮时,在HTML中再次显示隐藏元素

Javascript 当按下后退按钮时,在HTML中再次显示隐藏元素,javascript,html,Javascript,Html,我有一个简单的HTML代码,在用户选择“是”时显示隐藏的元素。我在这段代码中面临的问题是: 用户提交并按下浏览器上的“后退”按钮后,仍显示“是”,但不显示隐藏元素。用户必须单击“否”,然后重新选择“是”,数据才能再次显示。如何解决这个问题? 一些头衔 函数加载{ document.getElementById'YesOrNo'.onchange=函数e{ 如果this.value==“是”{ document.getElementById'Details.style.display=; }否

我有一个简单的HTML代码,在用户选择“是”时显示隐藏的元素。我在这段代码中面临的问题是: 用户提交并按下浏览器上的“后退”按钮后,仍显示“是”,但不显示隐藏元素。用户必须单击“否”,然后重新选择“是”,数据才能再次显示。如何解决这个问题?

一些头衔 函数加载{ document.getElementById'YesOrNo'.onchange=函数e{ 如果this.value==“是”{ document.getElementById'Details.style.display=; }否则{ document.getElementById'Details.style.display='none'; } }; } 欢迎来到ABC YesOrNo? 不 对 一些隐藏的数据 待会儿见
我已经看过你的代码,但我认为有一个问题。您已经基于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值。如果是,显示您想要的。

嘿!你能为上述问题提供一个合适的解决方案吗?我是这个领域的新手,似乎无法找到解决办法。提前谢谢!嘿你能为上述问题提供一个合适的解决方案吗?我是这个领域的新手,似乎无法找到解决办法。提前谢谢!非常感谢,先生!这起作用了。我根据需要将本地存储更改为会话存储!我很高兴这有帮助。好兄弟,谢谢你,先生!这起作用了。我根据需要将本地存储更改为会话存储!我很高兴这有帮助。所有最好的兄弟。