我一直在尝试找到Safari / Chrome中后退按钮错误的解决方法(浏览器将伪造数据放在他们不属于的字段中)。我没有运气,似乎现在应该有一个很好的解决方案(我看到有关这个的帖子可以追溯到2009年,但没有好的解决方案)。
在此示例中:http://jsfiddle.net/eGutT/13/
你可以看到初始页面加载时一切正常。但是,在单击链接,然后单击浏览器上的后退按钮后,值将传播到错误的字段。请使用Safari或Chrome进行测试。它适用于Firefox。
这是一个非常严重的问题,尤其是在以下情况下:
现在您处于将伪造数据提交到数据库的情况!!
顺便说一下,这个问题可能与jQuery有关,因为如果你在示例中取消注释这一行:updateRowNums(); // IF YOU COMMENT OUT THIS LINE...
没有引入额外/伪造数据。
谢谢, 盖伦
答案 0 :(得分:0)
你在谈论0,1和2吗?因为您的函数updateRowNums
会自动强制执行这些值。如果您想维护第一列,可以将updateRowNums
更改为以下内容:
if (!$('#some_id').val()) { $('#some_id').val(x); }
(显然它不是最有效的代码,但如果没有值,它会重置字段。)
但是,如果不是你正在谈论的内容,那么我无法重现你的问题。我正在使用Chrome 9.0.597.83,它在所有正确的位置保存了所有正确的数据。