今天测试的导入数据的时候发现提交文件时,数据库居然执行了两次插入操作。看一下后台原来是控制器(项目用的是springmvc)被执行了两次。我就纳闷了为什么会有如此诡异的事情发生。多次测试无果决定换浏览器试试。结果IE上却没有再次出现这个bug(原来用的火狐浏览器)。经过查找资料得知,原来是在firefox下,form对象(jQuery对象).submit(),特别是写在a标签里面的会提交两次,如这样写
<pre name="code" class="html"><a href="#" class="btn-blue" οnclick="$('#formUpload').submit();">
于是乎决定将form表单的onsubmit里面的表单验证删掉,在用submit按钮去提交并用事件去执行表单验证。
a标签改为submit按钮
<input class="btn-grid" value="导入" type="submit" οnclick="uploadCheck();"/>
然后在uploadCheck方法里面写上document.getElementById("formUpload").submit();(这次用js对象)
就这样解决这个bug,我相信也会有人遇到同样的问题吧。