4

我一直在尝试寻找 Safari/Chrome 中后退按钮错误的解决方法(浏览器将虚假数据放在不属于它们的字段中)。我没有任何运气,现在似乎应该有一个很好的解决方案(我看到关于这个问题的帖子可以追溯到 2009 年,但没有很好的解决方案)。

在这个例子中:http: //jsfiddle.net/eGutT/13/

您可以看到在初始页面加载时一切正常。但是,单击链接后,然后单击浏览器上的后退按钮,值会传播到错误的字段。请使用 Safari 或 Chrome 进行测试。它在 Firefox 上运行良好。

这是一个非常严重的问题,尤其是在以下情况下:

  1. 用户点击后退按钮,出现此错误
  2. 用户没有注意到虚假数据
  3. 用户对表单进行了一些不相关的更改(在不同的未受影响的字段中)
  4. 用户提交表单

现在您面临的情况是虚假数据被提交到数据库!

顺便说一句,这个问题可能与 jQuery 有关,因为如果您在示例中取消注释此行:

updateRowNums();  // IF YOU COMMENT OUT THIS LINE...

没有引入额外/虚假数据。

谢谢,盖伦

4

1 回答 1

0

你是在说 0、1 和 2 吗?因为您的函数updateRowNums会自动强制这些值。如果要保留第一列,可以更改updateRowNums为以下内容:

if (!$('#some_id').val()) { $('#some_id').val(x); }

(显然这不是最有效的代码,但如果不存在值,它会重置该字段。)

但是,如果这不是您所说的,那么我无法重现您的问题。我使用的是 Chrome 9.0.597.83,它在所有正确的地方保存了所有正确的数据。

于 2011-01-28T19:03:29.367 回答