ASP.Net按钮禁用

时间:2013-01-21 12:39:09

标签: javascript asp.net button

我正在使用javascript代码禁用该按钮,但我的服务器端事件没有触发..任何想法?

Javascript
------------------------

        function DisableButton() {
            if (typeof (Page_ClientValidate) == 'function') {
                Page_ClientValidate();
            }
            if (Page_IsValid) {
               document.getElementById('<%=BtnToprimaryValidation.ClientID%>').disabled = true;
                document.getElementById('<%=BtnToprimaryValidation.ClientID%>').value = 'Please wait ...';
            }
        }

ASP.Net
-------------------------
<asp:Button ID="BtnToprimaryValidation" runat="server" 
                        meta:resourcekey="BtnToprimaryValidationResource1" 
                       CssClass="submitButton">

Server Side c#
---------------------------

        protected void Page_Load(object sender, EventArgs e)
        {
            BtnToprimaryValidation.Click += BtnToprimaryValidationClick;
        }
         protected void BtnToprimaryValidationClick(object sender, EventArgs e)
        {
        }

先谢谢, Rahul R

2 个答案:

答案 0 :(得分:0)

事件不会触发已禁用的项目

您必须将DisableButton方法更改为return false,而不是禁用,如下所示:

function DisableButton() {
        if (typeof (Page_ClientValidate) == 'function') {
            Page_ClientValidate();
        }
        if (Page_IsValid) {
            document.getElementById('<%=BtnToprimaryValidation.ClientID%>').value = 'Please wait ...';
        }
        else {
            return false;
        }
}

答案 1 :(得分:0)

正如@mattytommo的上一个回答中所述,事件不会触发禁用按钮

使用短暂超时首先触发事件,然后禁用按钮:

setTimeout(function(){ 
document.getElementById('<%=BtnToprimaryValidation.ClientID%>').disabled = true; 
}, 100);

就像我在this question上建议的那样。