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("舊密碼驗證失敗");
}
}
該頁面回傳的就是密碼驗證的結果,由首頁面顯示。