【问题标题】:javascript retaining the value of hidden input variables even after refreshing page ( F5 or clicking refresh button of browser)即使在刷新页面( F5 或单击浏览器的刷新按钮)后,javascript 也会保留隐藏输入变量的值
【发布时间】:2012-02-14 22:47:42
【问题描述】:

我遇到了一个奇怪的问题,可能你们中的一些人已经遇到过。 问题来了,

我的 html 中有一个隐藏的输入字段(使用 perl /mason),

<input type='hidden' id='noB'  name='noB' value='<% $noB%>'/> ; 

值($noB)在服务器端填充。

在我的 javascript 中,我正在使用

var noB = jQuery('#noB').val(); 

获取价值并处理它。
最重要的是每次我将在一个新变量假设noB = 3中访问这个值时,做一些处理并将隐藏变量noB更新为1,所以它不是我正在使用的全局变量这样做。

现在,如果我更改 noB 让我在我的 javascript 中说 1 并使用 F5 刷新该页面后,当页面再次加载并尝试获取值时。

var noB = jQuery('#noB').val();

我只得到noB = 1,它应该是3。

请帮忙。

【问题讨论】:

    标签: javascript refresh retain


    【解决方案1】:

    Firefox(可能还有其他浏览器)将使用刷新页面时的值重新加载表单元素,即使这不是 HTML 中指定的值。简单的解决方案:通过导航回到页面重新加载页面,而不是刷新。

    【讨论】:

    • 感谢您的回复,安东尼。我明白这一点,问题是表单元素中的值发生了变化,但 javascript 正在使用它创建的最后一个值。有什么办法可以避免它或它只是一个浏览器问题
    【解决方案2】:

    如果这是浏览器问题,请尝试强制浏览器不缓存您的页面内容。

    这可以通过将以下&lt;meta&gt; 标记放在您的 HTML 标头中来完成:

        <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
    

    【讨论】:

      【解决方案3】:

      虽然它很旧,但我遇到了类似的问题并找到了这个解决方案:

      1. 不要使用隐藏的输入字段,而是使用 label.innerHTML 来存储您的值
      2. 您可以使用 javascript 访问/更改标签的 innerHTML 值。
      3. 每次刷新页面时都会刷新标签的值。

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多