1

我正在使用 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)
        {
        }

提前致谢, 拉胡尔 R

4

2 回答 2

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;
        }
}
于 2013-01-21T12:46:02.420 回答
0

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

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

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

就像我在这个问题上建议的那样。

于 2013-01-21T13:12:49.480 回答