且听疯吟如此生活三十年
Firefox 的表单缓存「Bug」

##问题
在使用 Firefox 测试网站的时候遇到一个奇怪的问题。
把一份数据写入类型为 hidden 的 input 中时,比如

1
<input type="hidden" value="@Model.Count" id="Count" />

然后在用 Javascript 修改这个值,比如后台数据原为 0,

1
2
var count = parseInt($("#Count").val());
$("#Count").val(count + 1);

不提交表单,刷新页面,发现 $("#Count").val() 的值却不是后台数据的 0,而是我们修改过后的值,这个值被缓存了。

##原因
使用其他浏览器测试可以发现,这个问题仅出现在 Firefox 中。从而可以考虑是否 Firefox 对表单缓存的实现「有问题」。

##解决
设置 form 的 autocomplete="off"