1 页面:把旧密码文本框设为html控件,调用javascript函数比较方便,旁边放一个div,用来显示提示
<th style="width : 60px" >
旧密码:</th>
<td colspan="3">
<input id="TB_OldPass" type="password" οnblur="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("旧密码验证失败");
}
}
该页面回传的就是密码验证的结果,由主页面显示。