【问题标题】:Disable a button in aspx with javascript when click on it and enable it from code behind单击它时使用javascript禁用aspx中的按钮并从后面的代码中启用它
【发布时间】:2013-09-20 08:54:24
【问题描述】:

我想当用户点击按钮时,禁用它,然后在后面的代码中启用它

我使用下面的代码但禁用它然后启用它,因为页面再次加载并且不会从后面的代码调用按钮事件点击

ASPX

<asp:ScriptManager runat="server"></asp:ScriptManager>
<asp:UpdatePanel runat="server" id="UpdatePanel" updatemode="Conditional">
    <ContentTemplate>
        <div>
            <asp:Button runat="server" ID="btnReg" OnClick="reg_Click" OnClientClick="disableButton();" Text="Click On Me..." />
        </div>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnReg" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>

JavaScript

function disableButton() 
{
    document.getElementById("<%=btnReg.ClientID%>").disabled = true;
}

背后的代码

protected void reg_Click(object sender, EventArgs e)
{
    //do work
    btnReg.Enabled = true;
}

【问题讨论】:

    标签: javascript asp.net


    【解决方案1】:

    使用 javascript 禁用按钮,如下所示:

    document.getElementById("<%=btnReg.ClientID%>").disabled = true;
    

    从代码隐藏中启用它,如图所示:

    //after doing some logic 
    
    btnReg.Enabled = true;
    UpdatePanel.Update();
    

    详情请阅读this

    $(function() {    
      function doosomething()
      {
        document.getElementById("<%=btnReg.ClientID%>").enabled= true;
      }
    };
    

    从代码隐藏中禁用按钮后立即调用此函数,如图所示:

    System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "Script", "doosomething();", true);
    

    【讨论】:

    • 我做到了,就像问题一样(将 javascript 函数设置为 OnClientClick 并将代码后面的代码设置为 Onclick),但是当我点击代码后面的按钮时没有调用,为什么?
    • 现在,我的问题不是那个按钮没有启用或禁用,我的问题是当我在那个点击事件没有调用之后用 javascript 禁用按钮然后我不能做这个按钮应该
    • 为什么在您使用代码隐藏中的 javascript 函数禁用按钮后不调用函数,如我的回答中所更新...
    • onClick="reg_Click" ,reg_Click 不调用,请测试你的答案
    • 在 reg_click 事件处下断点,找出问题出在哪里?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 2021-04-02
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多