先说说我目前的想法吧。在一个login.aspx页面中有个id为loginTxt的层
<div id="loginTxt"></div>
这个层是用于实现登录状态切换的容器。我在<body onload="chklogin()">触发了chklogin函数,function initiLogin(t)
{
    var url,result;
    $("loginTxt").innerHTML="<img src=\"/images/load.gif\"/>";
    createXMLHttpRequest();        url="/ajax/memberlogin.ashx";    xmlHttp.open("Get",url,true);
    xmlHttp.send(null);
    
     if (xmlHttp.readyState==4)
        {
            if(xmlHttp.Status==200)
            {
                result=xmlHttp.ResponseText;
            }
        }
        else
        {
        result="<img src=\"/images/load.gif\"/>";
        }
        
      $("loginTxt").innerHTML=result;
}而这个js函数负责用ajax提交到memberlogin.ashx页面进行登录的处理。
我的想法在memberlogin.ashx页如判断出用户是否登录,并根据状态返回含有登录输入框的HTML代码或已登录的HTML,然后用$("loginTxt").innerHTML呈现出来。
不知道大家做的时候是否也是通过这样的方式来改变页面上的状态显示。
如采用这一方法的话,当密码错误时如何用alert弹出一个提示密码错误的窗口呢?还请大家给支支招。。谢谢了,如何比较完美的实现无刷新的登录过程。。

解决方案 »

  1.   

    现在如果采用以上的方法,我遇到的一个问题是:
    由于login.aspx页面上只有一个DIV,所有显示的内容都是由memberlogin.ashx返回显示的,当密码错误时我肯定要返回一个登录框和弹出一个密码错误的提示(alert());,如果直接返回  txt.Append("<script language='javascript'>alert('密码错误');</script>");
                        txt.Append("用户名:<input type=\"text\" name=\"uanme\" /><br/>");
                        txt.Append("密码:<input type=\"password\" name=\"pwd\" /><br/>");
                        txt.Append("  <input type=\"button\" onclick=\"initiLogin('login');\" name=\"Submit\" value=\"登录\" />");好像行 不通