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

Javascript 表单值在IE8中丢失,但Firefox、IE9可以正常工作,javascript,spring,internet-explorer-8,double-click,Javascript,Spring,Internet Explorer 8,Double Click,我遇到了一个场景,只有在IE8浏览器中,我才被抛出一个意外行为。IE9和Firefox浏览器工作正常。行为是这样的: 用户填充了一个表单 故意-用户将必填字段留空 用户单击“提交”按钮,浏览器发送了一个POST请求 预期行为-错误消息与已提供的数据一起抛出。只有必填字段应该留空,因为我们在步骤2中没有提供任何内容。但我得到的是一条错误消息,上面的数据丢失了,即表单为空。 请注意,这只发生在IE8中。有什么建议吗?我将自己回答这些问题。下面是我的场景。这是一个双击问题。但我只点击了一次按钮。那是怎

我遇到了一个场景,只有在IE8浏览器中,我才被抛出一个意外行为。IE9和Firefox浏览器工作正常。行为是这样的:

用户填充了一个表单 故意-用户将必填字段留空 用户单击“提交”按钮,浏览器发送了一个POST请求 预期行为-错误消息与已提供的数据一起抛出。只有必填字段应该留空,因为我们在步骤2中没有提供任何内容。但我得到的是一条错误消息,上面的数据丢失了,即表单为空。
请注意,这只发生在IE8中。有什么建议吗?

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

我使用Fiddler对此进行了深入研究——我注意到在IE8浏览器中有两个请求被发送到服务器。但IE9和Firefox正确地处理了这种情况,即了解双击并只发送1个POST请求,而不是2个

使用的技术:SpringFramework2.0、JSP、HTML、JavaScript

数据丢失的原因也与服务器有关——Spring修改了会话属性以使其具体化——它是一个formObject,在处理请求时被临时删除并重新添加。当同时有另一个请求时,它通过另一个管道handleInvalidSubmit,最终创建一个新的formObject,从而销毁旧数据

希望这将有助于其他人: