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