我的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;
,那么一切都很顺利。
答案 0 :(得分:5)
禁用该按钮也会禁用表单提交。您需要自己提交:
function disableButton(button) {
button.disabled = true;
__doPostBack(<%= btnProcessPayment.ClientID %>,''); // need to manually submit
return true;
}
根据Waqas建议进行了更新!
答案 1 :(得分:2)
你需要发出像这样的按钮的服务器端事件
onclick="this.disabled=true;__doPostBack('buttonclientid','');"
或
function disableButton(button) {
button.disabled = true;
__doPostBack('buttonclientid','');
return true;
}
答案 2 :(得分:0)
使用它,它对我有用
__doPostBack('<%= btnSubmit.ClientID %>', '');
其中btnSubmit
是我的按钮的ID,我想触发按钮的服务器端点击事件。它有效。