完整的故事是我想禁用表单提交上的提交按钮以防止多次提交。问题之一是该表单是 ASP.Net MVC Ajax 表单 - <% using (Ajax.BeginForm ... %> - 因此其 javascript onSubmit 事件已设置,因此我无法在该事件期间执行此操作。除非有办法用 jQuery add 到提交事件?我的测试表明 $("#form").submit(...) 替换 提交事件,从而杀死 MVC 的 ajaxy 东西。
所以我所做的是将按钮禁用代码附加到提交按钮的单击事件。这工作正常......只是它杀死了按钮的提交能力(除了按钮被禁用之外什么也没有发生)。我更进一步,使用 jQuery 从单击事件提交表单。这让一切都变得很糟糕,ajax 响应作为下载的文件返回,我想是因为 MVC 的 ajax 东西再次被破坏了。 这就是我现在的位置:
$("#submitButton").click(function ()
{
var $button = $(this);
$button.parent().submit();
$button.attr("disabled", "disabled");
});
有人知道解决方法吗?
基本上类似
$("form").submit(function() {
$(this).submit(function() { return false; });
$(":submit", this).addClass("PseudoDisabled");
});
附加在 document.ready 上,在我们的项目中效果很好。因为您实际上无法禁用提交按钮,否则回发将被忽略。我们基本上创建了一个应用于 onSubmit 的禁用样式,它提供了禁用的外观,并通过附加新的提交事件处理程序来防止多次提交。
事实证明这是一个错误。请参阅编辑后的问题以获取答案。