yuanweisen

 

用ajax写出的旧密码验证功能

1 页面:把旧密码文本框设为html控件,调用javascript函数比较方便,旁边放一个div,用来显示提示

<th style="width : 60px" >
                                    旧密码:</th>
                                <td colspan="3">
                                    <input id="TB_OldPass" type="password" onblur="CheckPass()"  />
                                    <div id="Pass_Txt" style="z-index: 101; left: 468px; width: 100px; position: absolute; top: 48px;
                                        height: 17px; display : none">
                                    </div>

当旧密码文本框失去焦点时,即触发验证事件CheckPass();

该函数在另一js文件内,别忘记引用到本页面

<script language="javascript" type="text/javascript" src="js/CheckPass.js"></script>

文件ChekcPass.js代码

 

function CheckPass()
{
    //首先获取旧密码字符
    var keys=document.getElementById("TB_OldPass").value;

            //异步传输数据
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.onreadystatechange=statechangeLoad;
    //打ModifyPass.aspx文件执行后台代码
   xmlhttp.open("GET","ModifyPass.aspx?Pass="+encodeURI(keys),true);
   xmlhttp.send(null);

  
}

function statechangeLoad()
{
    if (xmlhttp.readystate==4)
    {
        if (xmlhttp.status==200)
        {
           
            //根据密码验证的结果,在页面得到相应的显示
            document.getElementById("Pass_Txt").innerHTML=xmlhttp.responseText;
            document.getElementById("Pass_Txt").style.display="";
            //再根据所显示的字符来决定新密码是否允许被填写
            if ( document.getElementById("Pass_Txt").innerHTML=="旧密码验证成功" )
                {
                    document.getElementById("TB_NewPass").readOnly=false;
                    document.getElementById("TB_NewRePass").readOnly=false;
                }
            else
                {

                    //直接让旧密码文本框再获得焦点,更人性化
                     document.form1.TB_OldPass.focus();

                }
        }
    }
}

验证密码事件主要靠ModifyPass.aspx页面的Page_Lode事件

protected void Page_Load(object sender, EventArgs e)
        {
            //得到传过来的密码的字符串
            string Pass =Tools.GetMD5( Request.QueryString["Pass"].ToString());
            //得到当前用户的ID
            //string CurrentUserId = Session["CurrentUserId"].ToString();
            string CurrentUserId = "4";
            //进行判断,看传过来的用户ID和密码是否匹配
            DataSet ds = new DataSet();
            if (Business.Patient.CheckPass(Convert.ToInt32(CurrentUserId), Pass))
            {
                Response.Write("旧密码验证成功");
            }
            else
            {
                Response.Write("旧密码验证失败");
            }
        }

该页面回传的就是密码验证的结果,由主页面显示。

posted on 2008-11-26 19:24    阅读(380)  评论(0编辑  收藏  举报

导航