C# 禁用按钮不会';t在服务器端触发单击事件
我的aspx页面中有一个imagebutton,如:C# 禁用按钮不会';t在服务器端触发单击事件,c#,javascript,asp.net,C#,Javascript,Asp.net,我的aspx页面中有一个imagebutton,如: <asp:ImageButton ID="btnProcessPayment" ImageUrl="~/Images/process-payment.png" OnClientClick="return disableButton(this);" runat="server" OnClick="btnProcessPayment_Click" /> 正如您在
<asp:ImageButton ID="btnProcessPayment" ImageUrl="~/Images/process-payment.png" OnClientClick="return disableButton(this);"
runat="server" OnClick="btnProcessPayment_Click" />
正如您在我的javascript事件处理程序中所看到的,我已禁用该按钮,以防止用户单击该按钮两次。然而,即使我的服务器端事件处理程序也不会因此而被触发。我做错了什么
注意:如果我注释掉这一行
button.disabled=true代码>一切正常。禁用该按钮也会禁用表单提交。您需要自己进行提交:
function disableButton(button) {
button.disabled = true;
__doPostBack(<%= btnProcessPayment.ClientID %>,''); // need to manually submit
return true;
}
功能禁用按钮(按钮){
button.disabled=true;
__doPostBack(,“”);//需要手动提交
返回true;
}
根据建议更新 您需要触发按钮的服务器端事件
onclick="this.disabled=true;__doPostBack('buttonclientid','');"
或
使用这个,它对我有效
__doPostBack('<%= btnSubmit.ClientID %>', '');
uu doPostBack(“”,”);
其中btnSubmit
是我的按钮的ID,我想触发该按钮的服务器端单击事件。它起作用了。这不起作用。事件处理程序仍不执行。最后,我使用Vinay的方法使它工作了:虽然它看起来有点黑客设置超时,然后禁用,但它工作了。button.id
-检查这是否正确。否则,请尝试执行document.form1.submit()
(根据您的代码进行更改)。将button.id替换为@Brad8118:不要假设jQuery!或原型。$
到底代表什么?:)我只是注意到了同样的问题。至少我不是唯一一个。
function disableButton(button) {
button.disabled = true;
__doPostBack('buttonclientid','');
return true;
}
__doPostBack('<%= btnSubmit.ClientID %>', '');