首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Button 控件的 OnClientClick 和 OnClick 事件执行顺序有关问题

2011-12-24 
Button 控件的 OnClientClick 和 OnClick 事件执行顺序问题headrunat server title 无标题页 /tit

Button 控件的 OnClientClick 和 OnClick 事件执行顺序问题
<head   runat= "server ">
        <title> 无标题页 </title>
        <script   language= "javascript ">
        function   check()
        {        
                var   email   =   document.getElementById( 'TextBox1 ');  
                var   pwd   =   document.getElementById( 'TextBox2 ');  
                if     (email.value== " "   ||   pwd.value== " ")  
                {
                        alert( "请填写完整内容 ");  
                        return   false;
                }
                else
                {
                        var   mailStr   =   /((\w)+)@((\w)+).[cc|com|net|org|tv|cn]/ig;  
                        if   (!mailStr.exec(email.value))
                        {  
                                alert( 'Email地址书写不正确!\n请您重新输入! ');  
                                email.value   =   ' ';  
                                email.focus();  
                                return   false;  
                        }                          
                }                
        }
        </script>
</head>
<body>
        <form   id= "form1 "   runat= "server ">
        <div>
                <asp:TextBox   ID= "TextBox1 "   runat= "server "> </asp:TextBox> &nbsp;
                <asp:TextBox   ID= "TextBox2 "   runat= "server "> </asp:TextBox>
                <asp:Button   ID= "Button1 "   runat= "server "   Text= "Button "   OnClientClick= "check() "   OnClick= "Button1_Click1 "     /> </div>
        </form>
</body>

上面这段是ASPX文件主体,页面上有两个TextBox   和一个Button   ,Button   有两个事件,一个客户端事件,一个写在后配代码CS文件中,如下


protected   void   Button1_Click1(object   sender,   EventArgs   e)
        {
                Response.Write( "OK ");
        }

执行时,当我按下按纽,好像是OnClientClick   事件先执行验证,难过验证后执行OnClick事件输出OK,但如果没有难过验证,会弹出提示框,点提示框的确定后也会输出OK,这就不是我想要的了,如何在验证不通过的时候就不再执行OnClick?

[解决办法]
当然先执行客户端的javascript函数,页面回送以后再执行服务器端的方法
OnClientClick= "check() "
改成
OnClientClick= "return check() "
[解决办法]
Page_Load里写:

Button1.Attributes.Add( "OnClick ", "return check() ");
[解决办法]
<asp:Button ID= "Button1 " runat= "server " Text= "Button " OnClientClick= "if(!check()) return false; " OnClick= "Button1_Click1 " /> </

热点排行