假设我给出了这段代码:
<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的情况下修复它?
答案 0 :(得分:2)
这不是标准做法,可能是Firefox和Chrome都在缓存这些值。但你不应该依赖它。
如果使用Ctrl + F5刷新页面,则无效。
答案 1 :(得分:0)
你不能在页面本身保存这个值...,任何整页重新加载都会清除你已经改变的任何值...所以除非你将状态保存到某种持久层......取决于bowser后退按钮会以不同的方式运行...一些没有缓存的旧浏览器会重新加载整个页面。
有些人可能会在修改之前缓存实际的javascript,因此也会加载旧的javascript,并使用旧值从缓存中加载。
最好在某种持久层中处理此问题
答案 2 :(得分:0)
请尝试使用以下值设置值:
$("#field").attr("value", newValue);
不要使用.val()方法。我有一个类似的问题,我用它解决了,因为IE没有使用.val()刷新隐藏值。