禁用按钮不会在服务器端触发点击事件
本文关键字:事件 服务器端 按钮 | 更新日期: 2023-09-27 18:06:25
我有一个imagebutton在我的aspx页面,像:
<asp:ImageButton ID="btnProcessPayment" ImageUrl="~/Images/process-payment.png" OnClientClick="return disableButton(this);"
runat="server" OnClick="btnProcessPayment_Click" />
这是我的javascript函数:
function disableButton(button) {
button.disabled = true;
return true;
}
你可以在我的javascript事件处理程序中看到,我已经禁用了按钮,以防止用户点击按钮两次。然而,即使是我的服务器端事件处理程序也不会因此而被解雇。我做错了什么?
注意:如果我注释掉这行button.disabled = true;
,一切都很好。
禁用按钮也会禁用表单提交。你需要自己完成提交:
function disableButton(button) {
button.disabled = true;
__doPostBack(<%= btnProcessPayment.ClientID %>,''); // need to manually submit
return true;
}
根据Waqas的建议更新!
需要触发按钮的服务器端事件像这样
onclick="this.disabled=true;__doPostBack('buttonclientid','');"
或
function disableButton(button) {
button.disabled = true;
__doPostBack('buttonclientid','');
return true;
}
使用它,它为我工作
__doPostBack('<%= btnSubmit.ClientID %>', '');
其中btnSubmit
是按钮的ID,我想触发按钮的服务器端单击事件。它的工作原理。