我有以下代码,我用它来提交链接(而不是按钮)的表单。这是为了让我们可以做一些CSS悬停的东西。Jquery - Internet Explorer提交表单两次
$('a.css_submit').click(submit_form);
$('a.inactive_submit').click(submit_form);
function submit_form(event) {
if ($(this).parents('form:first').length > 0 && !$(this).hasClass('inactive_submit')) {
$(this).toggleClass("css_submit inactive_submit");
$(this).parents('form:first').submit();
return false;
} else {
return true;
}
}
问题是Internet Explorer偶尔会提交表单两次。我自己无法复制该问题,但可以在生产服务器日志中验证它。这个问题在IE6 - IE9中仍然存在。所有其他浏览器正常工作。我看到一些帖子说,从链接返回false,但我这样做。
任何帮助表示赞赏。
也许用户点击提交两次真的很快。尝试在第一次点击后禁用链接。 –
如果使用event.preventDefault()作为submit_form的第一行,它会执行相同的操作吗? (而不是返回false;) –
+1 @ilia往往是这样。普通人群用于双击Windows图标,因此他们倾向于双击_everything_。我几年前编写了一个在线支付系统,为了防止双重提交,我们禁用了onclick提交按钮(除了服务器端验证)。 –