【问题标题】:Disable buttons after click until post back of ascx control using javascript单击后禁用按钮,直到使用 javascript 回发 ascx 控件
【发布时间】:2014-01-31 15:29:50
【问题描述】:

页面按预期工作,禁用按钮并显示我的加载指示器,但永远不会调用 OnClick 事件。我对 Javascript 相对缺乏经验,我似乎无法找到为什么这不起作用的答案。

我希望一旦 Disable() 方法发生并返回 true,它将调用 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>

【问题讨论】:

  • 您希望该按钮何时禁用以及何时启用??
  • @amarnath-balasubramanian,我希望两个按钮都在单击时被禁用,直到回发发生(即工作已经完成)
  • 当回发发生意味着您的代码已被执行以进行按钮单击。那为什么又要禁用呢?如果要禁用,请在您正在执行的服务器端按钮单击中执行button.Enabled=false

标签: c# javascript asp.net ascx


【解决方案1】:

找到答案here

添加了“UseSubmitBehavior = False”,瞧,正确调用了 OnClick 事件。

显然 asp 立即尊重按钮的禁用并导致事件触发失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    相关资源
    最近更新 更多