IE不会在后退按钮上重新显示隐藏的字段值

时间:2015-10-14 13:00:17

标签: javascript jquery html internet-explorer

假设我给出了这段代码:

<input type="hidden" id="field" name="field" value="1">      
<button id="change">Change</button>

这个javascript:

alert($("#field").val());
$("#change").on("click", function(){
    var newValue = parseInt($("#field").val()) + 1;
   $("#field").val(newValue);
   alert($("#field").val());
});

如果我更改了值,请转到另一个页面然后使用后退按钮,在chrome和firefox中显示最新值,而在IE中显示默认值。 如何在不使用sessionstorage的情况下修复它?

Fiddle

3 个答案:

答案 0 :(得分:2)

这不是标准做法,可能是Firefox和Chrome都在缓存这些值。但你不应该依赖它。

如果使用Ctrl + F5刷新页面,则无效。

答案 1 :(得分:0)

你不能在页面本身保存这个值...,任何整页重新加载都会清除你已经改变的任何值...所以除非你将状态保存到某种持久层......取决于bowser后退按钮会以不同的方式运行...一些没有缓存的旧浏览器会重新加载整个页面。

有些人可能会在修改之前缓存实际的javascript,因此也会加载旧的javascript,并使用旧值从缓存中加载。

最好在某种持久层中处理此问题

请参阅: Ajax, back button and DOM updates

答案 2 :(得分:0)

请尝试使用以下值设置值:

$("#field").attr("value", newValue);

不要使用.val()方法。我有一个类似的问题,我用它解决了,因为IE没有使用.val()刷新隐藏值。