【问题标题】:Instantly disable Button on click单击时立即禁用按钮
【发布时间】:2011-05-03 10:15:13
【问题描述】:

我想在单击按钮后立即禁用它,因此用户不能连续两次单击它并连续两次触发 OnClick_Event。 btn.Enabled = false 似乎并没有立即奏效。有没有其他方法可以做到这一点?

谢谢,

丹尼斯

【问题讨论】:

    标签: c# asp.net button onclick


    【解决方案1】:

    您所做的是在回发后禁用它,因此您的按钮将在浏览器收到响应时呈现的页面中被禁用。

    改为在客户端使用 JavaScript:

    var button = document.getElementById('yourButton');
    button.disabled = true;
    

    如果您在回发到服务器时遇到问题,请查看这篇文章:How to disable an ASP.NET button when clicked。

    【讨论】:

    • 我担心这会是一个答案,那么我该如何调用 OnClick 方法,因为这似乎覆盖了 Serverside-OnClick。
    • 这里只是迂腐,但没有“Serverside-OnClick”之类的东西。 ASP.NET 正在为您生成一些 JavaScript,这些 JavaScript 将连接到您的 按钮,这使得它可以将 ASP.NET 使用的单个
      提交到服务器,确保在 POST 数据中发送所有表单数据.
    • 是的,那个。除此之外,由于您的回答,您可能会或可能不会成为我的个人英雄,谢谢!
    • “由于您的回答,您可能会或可能不会成为我的个人英雄”——哈,为什么会模棱两可?我是还是不是? :p
    【解决方案2】:
    function disable()
    {
    var button = document.getElementById('<%= Button1.ClientID %>');
    button.disabled = true;
    }
    
    <asp:Button ID="Button1" OnClientClick="disable();">
    

    【讨论】:

      【解决方案3】:

      你可以通过javascript实现这个

      function Disable(btn)
      {
      btn.disabled = true;
      }
      

      并将其添加到您的按钮 OnClientClick="javascript:return Disable(this);"

      【讨论】:

        【解决方案4】:

        你可以简单地通过这个代码来处理它。假设,这里有一个名为btnAdd的按钮。当你点击这个按钮时,它会因为执行它的相应代码而被禁用。我的意思是由于回发它会被禁用。

        if (!IsPostBack)
            {
             btnAdd.Attributes.Add("onclick", "this.disabled=true;" + GetPostBackEventReference(btnAdd).ToString());
            }
        

        【讨论】:

          【解决方案5】:

          在按钮的 Onclick 事件中所有功能的末尾写上btn.Enabled= false。它将执行所需的操作。

          【讨论】:

          • 很遗憾,不,在这种情况发生之前,我仍然可以点击它至少 5-7 次。
          • 不,这正是 OP 所说的,但它对他不起作用,因为这是在服务器端完成的,而不是在客户端。
          【解决方案6】:

          禁用按钮已引发问题。您不会触发服务器端事件。所以最好通过隐藏按钮来寻找替代方案(是的,显示一些友好的错误消息“工作”、“处理”等)。解决如何disable asp.net button on postback 会有所帮助。谢谢。

          【讨论】:

            【解决方案7】:
            YourButton.Enabled = false;
            
            if(!YourButton.Enabled)
            {
            \\Your Code Here
            YourButton.Enabled = true;
            }
            

            希望这会有所帮助;)

            【讨论】:

              猜你喜欢
              • 2015-05-26
              • 2020-03-30
              • 1970-01-01
              • 1970-01-01
              • 2012-04-07
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多