怎么让confirm在完服务器端验证后才弹出来?如果验证通不过就不出来。

解决方案 »

  1.   

    用ajax或客户回调我这里有一个程序,刚好是实现这个功能的。 首先页面中代码 
    <script   type="text/javascript"   language="javascript" > 
                    var   xmlHttp   =   null; 
                    function   CheckUser() 
                    { 
                            try 
                            { 
                                    xmlHttp   =   new   ActiveXObject("Msxml2.XMLHTTP"); 
                            } 
                            catch(err1) 
                            { 
                                    try 
                                    { 
                                            xmlHttp   =   new   ActiveXObject("Microsoft.XMLHTTP"); 
                                    } 
                                    catch(err2) 
                                    { 
                                            xmlHttp   =   new   XMLHttpRequest(); 
                                    } 
                            } 
                            var   Text1   =   document.getElementById("Text1"); 
                            var   url   =   "chkuser.aspx?User="   +   Text1.value; 
                            xmlHttp.open("GET",url,true); 
                            xmlHttp.onreadystatechange   =   OnHandler; 
                            xmlHttp.send(null);                 } 
                    function   OnHandler() 
                    { 
                            if(xmlHttp.readyState   ==   4) 
                            { 
                                    var   isValid   =   xmlHttp.responseText; 
                                    var   exists   =   document.getElementById("exsits"); 
                                    exists.innerHTML   =   isValid.substring(0,4); 
                            } 
                    } 
    </script > 
    <input   id="Text1"   type="text"   onblur="CheckUser()"   / > <label   d="exsits" > </label > <br   / > 然后建一个chkuser.aspx,其后台代码改为 
    protected   void   Page_Load(object   sender,   EventArgs   e) 
            { 
                    string   user   =   this.Request.QueryString["User"];                 if   (UserExist(user)) 
                    { 
                            Response.Write("存在"); 
                    } 
                    else 
                    { 
                            Response.Write("不存在"); 
                    }         }         private   bool   UserExist(string   username) 
            { 
                    ClassLib.Employee   emp   =   new   ClassLib.Employee(); 
                    return   emp.EmpNameExist(username); 
            } 
      

  2.   

    EricGuzuqiang 
    --------
    你怎么在服务器端得到confirm的返回值呢?
    你这里讲的好象不太符合我的要求啊,
    能不能再讲具体点啊?要有confirm的啊!
      

  3.   

    最好还是在客户端完成验证,一定需要服务器端验证,就用ajax完成前面的服务端验证,然后再执行你的步骤,
    给服务器端的按扭加上客户端事件,在js里完成验证。
    用event.returnValue=false;可以终止事件,不执行到服务器端
      

  4.   

    yzqlee 
    ---------------
    用ajax怎么做服务器端的验证啊?
    能不能说具体点啊?谢谢了?
      

  5.   

    function   OnHandler()  
                    {  
                            if(xmlHttp.readyState   ==   4)  
                            {  
                                    var   isValid   =   xmlHttp.responseText;  
                                    var   exists   =   document.getElementById("exsits");  
                                    var res =   isValid.substring(0,1);
                                    if(res == "不")
                                         confirm("");
                            }  
                    }  
      

  6.   

    客户端回调 我这里也有一段程序 供参考<%@ page language="C#" % > 
    <%@ implements interface="System.Web.UI.ICallbackEventHandler" % > <script runat="server" >     private string _returnFromServer;     public void RaiseCallbackEvent(string eventArgs) 
        { 
            try 
            { 
                int value = Int16.Parse(eventArgs);             if( value  >= 1 && value  <= 1000 ) 
                    this. _returnFromServer = "You entered the number: " +  
    eventArgs; 
                else 
                    this. _returnFromServer = "Please enter a number between 1 and  
    1000"; 
            } 
            catch 
            { 
                throw new ApplicationException("You must enter a number."); 
            } 
        } 
          public string GetCallbackResult() 
        { 
            return this._returnFromServer; 
        }     
        public void Page_Load(object sender, EventArgs e) 
        { 
             
            if (!Request.Browser.SupportsCallback) 
      throw new ApplicationException("This browser doesn’t support Client  
    callbacks.");         string src = Page.ClientScript.GetCallbackEventReference( 
                                       this,  
                                       "arg", 
                                       "ClientCallback", 
                                       "ctx", 
                                       "ClientErrorCallback", 
                                       false);         string mainSrc = @"function ValidateNumber(arg, ctx) 
                               { " + src + "; }";         Page.ClientScript.RegisterClientScriptBlock( 
                                       this.GetType(), 
                                       "ValidateNumber", 
                                       mainSrc, 
                                       true); 
        } </script > <html > 
    <head runat="server" > 
         <title >Client Callback </title > 
         
         <script language="javascript" > 
         
            function Validate() 
            { 
                var n = document.forms[0].txtNumber.value;             //Call the server-side method to validate the number 
                ValidateNumber(n, "txtNumber"); 
            } 
             
            //ClientCallback will be executed after the server-side method 
            //is executed and the server response is parsed. 
    function ClientCallback( result, context ) 
            { 
                alert(result); 
            } 
             
            //If the server-side method throws an exception, the  
    ClientErrorCallback 
            //will be executed to show the exception. 
            function ClientErrorCallback( error, context ) 
            { 
                alert("The validation failed. " + error); 
            } 
         
         </script > </head > 
    <body > 
         <form runat="server" > 
          Please enter a number between 1 and 1000: <br / > 
           <input id="txtNumber" name="txtNumber" type="text"/ > 
           <button id="butValidate" OnClick="Validate()" >Validate </button > 
         </form > 
    </body > 
    </html > 
      

  7.   

    function ClientCallback( result, context )  
            {  
                if(res== ...)
                      confirm(); 
            }  
      

  8.   

    谢谢EricGuzuqiang ,谢谢大家,如果有好的办法都show上来,我想我说的这种情况在项目中还是很多的。
      

  9.   

    你先看看Ajax的例子,那里可以找到你的答案的