防止双击asp.net按钮asp.net C#

防止双击asp.net按钮asp.net C#,c#,asp.net,button,C#,Asp.net,Button,如何防止用户双击按钮?我一直在互联网上搜索,在我的项目中没有任何东西适合我。 你能给我举个例子吗 我有这个,但不起作用 <script type = "text/javascript"> function DisableButton() { document.getElementById("<%=Button1.ClientID %>").disabled = true; } window.onbeforeunload = DisableButton; &

如何防止用户双击按钮?我一直在互联网上搜索,在我的项目中没有任何东西适合我。 你能给我举个例子吗

我有这个,但不起作用

 <script type = "text/javascript">
 function DisableButton() {
  document.getElementById("<%=Button1.ClientID %>").disabled = true;
 }
  window.onbeforeunload = DisableButton;
 </script>

函数禁用按钮(){
document.getElementById(“”).disabled=true;
}
window.onbeforeunload=禁用按钮;

您可以在按钮的单击事件中将“enabled”属性更改为false

e、 g:

关于c#code:

在aspx文件上:

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

试试这个

<asp:Button OnClientClick="disableClick(this)" OnClick="MyButtonOnClick" runat="server" UseSubmitBehavior="false" ID="MyButton" />

<script type="text/javascript">
    function disableClick(elem) {
        elem.disabled = true;
    }
</script>

功能禁用单击(元素){
elem.disabled=true;
}

您钩住
OnClientClick
事件,将按钮传递给
disableClick
函数,然后该按钮被设置为disabled,因此无法再次单击

其他答案都没有真正帮助我,但在应用Junior Porfirio在评论下分享的链接()中的代码后,我终于找到了我想要的解决方案

Button1.Attributes.Add("onclick", " this.disabled = true; " + ClientScript.GetPostBackEventReference(Button1, null) + ";");

我在Page_Load方法中添加了上面的代码,看起来很有效。按钮被禁用,回发仍在进行。

双击是什么意思?要防止用户两次单击提交按钮?您可以尝试:为什么不在Button1单击事件中编写“Button1.enabled=false”而不是javascript函数..?这一点已经得到了回答,除非服务器端代码在有人再次单击它之前速度非常快,否则不会总是阻止双击。这依赖于服务器来禁用按钮。如果他在客户端执行此操作,服务器端在第二次发布后将不记得状态。在会话中存储变量是可能的,但我认为这是一种过分的做法,在回发之前单击一次或多次并不重要,因为事件将以任何方式执行一次。在它被执行之后,你将不能再做同样的任务。你当然可以在回发之前做两次。这就是我的意思。在到达
按钮1.Enabled=false
之前,有一个长时间运行的过程,它将运行代码两次。目前的这个例子大部分时间都能用,因为几乎没有任何事情发生。如果他想阻止在方法发回并返回数据给用户后单击按钮,那么他需要你的答案和javascript解决方案,这样如果Marth需要,这个答案仍然有效。如果你是想把饼干带到这里来。你所拥有的加上下面的Javascript解决方案应该没问题,除非他或她的需求不是我们所认为的。我需要从按钮的asp标签中删除OnClick,因为我看到你没有该事件,我理解这只是添加OnClientClick,如果我只添加该按钮,它将不会发送另一个表单,简言之,按钮不起作用吗?在我的项目中,这种情况发生了。您仍然可以使用OnClick事件,因为按钮最初需要返回。我不知道您是如何使用该按钮的,因为我没有看到发布的按钮代码,但您可能需要执行我刚刚编辑的代码以使其有效工作。请稍等。此解决方案通常不起作用。“elem.disabled”立即取消当前回发-除非您更改提交行为。请参见请使用正确的格式,在
按钮1
前留出四个空格,并删除背景标记:`Done'。感谢SteveFest。响应后如何启用按钮?
Button1.Attributes.Add("onclick", " this.disabled = true; " + ClientScript.GetPostBackEventReference(Button1, null) + ";");