禁用按钮不会在服务器端触发点击事件

本文关键字:事件 服务器端 按钮 | 更新日期: 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,我想触发按钮的服务器端单击事件。它的工作原理。