Javascript Chrome/Safari中的后退按钮错误

Javascript Chrome/Safari中的后退按钮错误,javascript,jquery,google-chrome,safari,back,Javascript,Jquery,Google Chrome,Safari,Back,我一直在试图找到一个解决Safari/Chrome(浏览器将虚假数据放在不属于它们的字段中)中后退按钮错误的方法。我没有任何运气,现在似乎应该有一个很好的解决方案(我看到有关这方面的帖子要追溯到2009年,但没有好的解决方案) 在本例中: 您可以看到,在初始页面加载时一切正常。但是,单击链接,然后单击浏览器上的“上一步”按钮后,值将传播到错误的字段。请使用Safari或Chrome进行测试。它在Firefox上运行良好 这是一个非常严重的问题,尤其是在以下情况下: 用户点击后退按钮,出现此错误

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

在本例中:

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

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

  • 用户点击后退按钮,出现此错误
  • 用户没有注意到虚假数据
  • 用户对表单进行了一些不相关的更改(在另一个未受影响的字段中)
  • 用户提交表单 现在,您将面临这样一种情况:虚假数据被提交到数据库

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

    updateRowNums();  // IF YOU COMMENT OUT THIS LINE...
    
    没有引入额外/虚假数据

    谢谢,
    盖伦

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

    if (!$('#some_id').val()) { $('#some_id').val(x); }
    
    (显然这不是最有效的代码,但如果没有值,它会重置字段。)


    然而,如果这不是你所说的,那么我无法重现你的问题。我使用的是Chrome 9.0.597.83,它将所有正确的数据保存在所有正确的位置。

    可能是重复的谢谢,你在另一篇文章中解决了这个问题。尽管使用name属性是一种解决方法,但它仍然是一个webkit错误。换句话说,如果webkit不确定要填充的字段,它不应该随意选择一个:)嗯,我在Mac上使用的是同样的Chrome版本。问题不是我不想设置一个已经设置好的值(如您所建议的)。问题是,当您返回页面时,其他不相关的字段(具有完全不同的ID)将采用其他字段的值。正如我发现的,这实际上与jQuery无关。此示例不使用jQuery,存在以下问题: