点击ASP.NET表单按钮后禁用以防止重复点击。

56
我有一个ASP.NET按钮,我需要在用户点击后禁用它,以防止重复点击。一旦提交完成,它必须再次启用。有人可以帮我吗?

在您完成所需的代码后,只需简单地使用 button.enable = false 即可。 - Developer
这是一个普通的PostBack还是AJAX请求? - Jonathan Freeland
如果您不想逐个按钮修复此问题,请查看我的另一个问题的答案:https://dev59.com/D2025IYBdhLWcg3wOzTX#28844217 - sparebytes
16个回答

1

如果您使用的是asp.net验证器,则此解决方案适用:

<script language="javascript" type="text/javascript">
function disableButton(sender,group)
{
    Page_ClientValidate(group);
    if (Page_IsValid)
    {
        sender.disabled = "disabled";
        __doPostBack(sender.name, '');
    }
}</script>

并更改按钮:

<asp:Button runat="server" ID="btnSendMessage" Text="Send" OnClick="btnSendMessage_OnClick" OnClientClick="disableButton(this,'theValidationGroup')" CausesValidation="true" ValidationGroup="theValidationGroup" />

1

使用jQuery:

$('form').submit(function(){
    $(':submit', this).click(function() {
        return false;
    });
});

1
请尝试这个,对我有用。

它对我有效。

<asp:Button ID="button" runat="server" CssClass="normalButton" 
Text="Button"  OnClick="Button_Click" ClientIDMode="Static" 
OnClientClick="this.disabled = true; setTimeout('enableButton()', 1500);" 
UseSubmitBehavior="False"/>  

然后。
<script type="text/javascript">
function enableButton() {
document.getElementById('button').disabled = false;
}
</script>

你可以在 "setTimeout" 中调整延迟时间。

为什么要使用 getElementById('button')?难道不应该是 <%= button.ClientID %> 吗? - Kiquenet

0

这适用于普通的HTML按钮。

    <input id="Button1"
    onclick="this.disabled='true';" type="button"
    value="Submit" name="Button1"
    runat="server" onserverclick="Button1_Click">

在回发完成之前,按钮将被禁用,以防止双击。


0
<script type = "text/javascript">
function DisableButtons() {
    var inputs = document.getElementsByTagName("INPUT");
    for (var i in inputs) {
        if (inputs[i].type == "button" || inputs[i].type == "submit") {
            inputs[i].disabled = true;
        }
    }
}
window.onbeforeunload = DisableButtons;
</script>

0
你可以使用JavaScript来实现这个。在你的form标签中,加入 onsubmit="javascript:this.getElementById("submitButton").disabled='true';"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接