表单值在IE8中丢失但Firefox,IE9正常工作

时间:2012-06-14 14:56:15

标签: javascript spring internet-explorer-8 double-click

我遇到了一个只在IE8浏览器中抛出意外行为的场景。 IE9和Firefox浏览器工作正常。行为就像:

  1. 用户填写表单
  2. 故意 - 用户将必填字段留空
  3. 用户点击“提交按钮”,浏览器发送了POST请求
  4. 预期行为 - 与已提供的数据一起抛出错误消息。由于我们在步骤2中未提供任何内容,因此只有必填字段应留空。但我收到的错误信息是先前的数据丢失,即表格为空。
  5. 请注意,这只发生在IE8中。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我将自己回答这些问题。所以,这就是我的场景中发生的事情。这是一个双击问题。但我只点击了一次按钮。那怎么回事?一些从事该项目的程序员正在处理表单提交,他使用JavaScript进行了另一次提交。但那么它在Firefox或IE9 +中是如何工作的?

我使用Fiddler深入研究 - 我注意到在IE8浏览器中有两个请求被发送到服务器。但IE9和Firefox正确处理这种情况(即学习双击)并且只发送1个POST请求而不是2个。

使用的技术:Spring Framework 2.0,JSP,HTML,JavaScript

为什么数据丢失也与Server有关 - Spring在处理请求时修改了会话属性(具体来说,它是一个临时删除并重新添加的formObject)。当同时有另一个请求时,它会通过另一个管道(handleInvalidSubmit),最后创建一个新的formObject,从而破坏旧数据。

希望这会有助于其他人:)

相关问题