Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用javascript在单击后禁用按钮,直到返回ascx控件_C#_Javascript_Asp.net_Ascx - Fatal编程技术网

C# 使用javascript在单击后禁用按钮,直到返回ascx控件

C# 使用javascript在单击后禁用按钮,直到返回ascx控件,c#,javascript,asp.net,ascx,C#,Javascript,Asp.net,Ascx,页面按预期工作,禁用按钮并显示我的加载指示器,但从未调用OnClick事件。我对Javascript相对缺乏经验,我似乎找不到一个答案来解释为什么这不起作用 我希望,一旦Disable()方法出现并返回true,它将调用OnClick方法,这将导致返回并自动重新启用按钮 也许我做错了,我感谢你的帮助 <%@ Register TagPrefix="ComponentArt" Namespace="ComponentArt.Web.UI" Assembly="ComponentArt.Web

页面按预期工作,禁用按钮并显示我的加载指示器,但从未调用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>

  • 函数禁用(){ document.getElementById(“”).disabled=true; document.getElementById(“”).disabled=true; setTimeout('UpdateImg()',0); 返回true; } 函数UpdateImg(){ $('#imgLoading').show(); var img=document.getElementById('imgLoading'); img.src='images/GridImages/spinner.gif'; }
    找到了答案

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


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

    您希望何时禁用按钮以及何时启用按钮???@amarnath balasubramanian,我希望在单击其中一个按钮时禁用这两个按钮,直到回发发生(即工作已完成)当回发发生时,意味着您的代码已经执行了一次按钮点击。那你为什么还要禁用它?如果要禁用,请在服务器端按钮中单击您正在执行的按钮,然后执行
    按钮。Enabled=false