![](/img/trans.png)
[英]javascript/jquery disable submit button on click, prevent double submitting
[英]Prevent double click on submit button while not supressing validationGroup
在asp.net应用程序中,当我单击一个按钮几次时,它将多次提交请求。 当我尝试实现javascript函数以使其仅提交请求一次时。 该解决方案有效,但不幸的是,它抑制了验证组,换句话说,它使表单的验证组件无法运行。 我想要一个可以防止双击并保持表单验证有效的解决方案。
这是我用来防止双击的JavaScript函数
var submit = 0;
function CheckDouble() {
if (++submit > 1) {
return false;
}
}
这是我的按钮组件
<asp:Button ID="cmdSaveExpense" runat="server" Text="140" tooltip="Save and close" CausesValidation="true" ValidationGroup="NewExpense" CssClass="button2" OnClick="return CheckDouble()" />
这是被隐藏的验证器
<asp:RequiredFieldValidator ID="AmtRequired" runat="server" ControlToValidate="txtAmt" ErrorMessage="* An amount is required" ValidationGroup="NewExpense" Display="Dynamic" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="cboCat" ErrorMessage="" Text="* An expense type is required" ValidationGroup="NewExpense" Display="Dynamic" />
执行此操作的一种旧方法是在第一次单击时隐藏按钮,在同一位置显示动画gif-并在请求完成后重新显示按钮。
这将使asp.net的所有内容保持完整,并禁止用户进行双重发布。 您可以使用diff javascript方法来实现这一点-但请记住,它必须运行得非常快。 原生效果最好。 不要从DOM中删除元素,只需使用CSS隐藏/显示这两个元素即可。
自从我这样做以来已经有好几年了,但是我记得很清楚,因为重复提交我遇到了很多麻烦。 该解决方案起到了很大的作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.