单击后禁用按钮,直到使用JavaScript发布ASCX控件的后面



该页面按预期工作,禁用按钮并显示我的加载指示器,但onclick事件从未被调用。我对JavaScript的经验相对不经验,我似乎找不到有关为什么不起作用的答案。

我希望一旦disable()方法发生并返回真实,它将调用onclick方法,这将导致后退并自动重新启用按钮。

也许我要做的一切都错了,感谢您的帮助。

<%@ Register TagPrefix="ComponentArt" Namespace="ComponentArt.Web.UI" Assembly="ComponentArt.Web.UI" %>
<%@ Control Language="c#" Inherits="MyControl"
Codebehind="ThisControl.ascx.cs"%>
<div class="Form" style="width: 100%">
  <img id="imgLoading" src="images/GridImages/spinner.gif" style="display:none" alt="loading..." />
  <ol>
    <li>
        <asp:Button ID="FirstButton" CssClass="btn" runat="server" Text="First Press Me"
            OnClick="First_Click" OnClientClick="this.value='Please Wait...'; needToConfirm=false; return Disable(); "/>
        <span>
            <asp:Button ID="SecondButton" CssClass="btn" runat="server" Text="Second Press Me"
                OnClick="Second_Click" OnClientClick="this.value='Please Wait...'; needToConfirm=false; return Disable(); "/>
        </span> 
    </li>
  </ol>
  <script type="text/javascript">
    function Disable() {
        document.getElementById('<%=FirstButton.ClientID %>').disabled = true;
        document.getElementById('<%=SecondButton.ClientID %>').disabled = true;
        setTimeout('UpdateImg()', 0);
        return true;
    }
    function UpdateImg() {
        $('#imgLoading').show();
        var img = document.getElementById('imgLoading');
        img.src = 'images/GridImages/spinner.gif';
    }
  </script>
</div>

在此处找到答案。

显然ASP立即尊重禁用按钮并导致事件火力失败。

最新更新