先发代码。。。。
- JScript code
var xmlhttp; function creatHttp() { if (window.ActiveXObject) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } else { xmlhttp = new XMLHttpRequest(); } } function postData() { creatHttp(); var uname = document.getElementById("Text1").value; var upass = document.getElementById("Text2").value; if (uname.length == 0 || upass.length == 0) { alert("请输入用户名密码!"); return; } else { var userinfo = ""; userinfo = uname + "," + upass; xmlhttp.open("post", "Index/DataPage.aspx?userinfo=" + escape(userinfo), true); xmlhttp.onreadystatechange = stateChange; xmlhttp.send(null); } } function stateChange() { if (xmlhttp.readystate == 4) { if (xmlhttp.status == 200) { document.getElementById("login").innerHTML = unescape(xmlhttp.ResponseText); } } else { alert("用户名密码错误!"); } }
然后是传入数据页面的代码
- C# code
protected void Page_Load(object sender, EventArgs e) { Users users = new Users(); string userinfo = Request.QueryString["userinfo"]; string[] arr = userinfo.Split(','); string uname = arr[0].ToString(); string upass = arr[1].ToString(); users.Uname = uname; users.Upass = upass; DataSet ds = users.CheckUser(users); if (ds.Tables[0].Rows.Count > 0) { Response.Write("欢迎" + uname + "登录!"); } }
现在的问题是,每次输入正确的用户名和密码的时候很正常,能够出现欢迎用户登录的字段,但是输入错误的用户名密码时,那个错误提示框回提示三遍,然后输入用户名和密码的框跟按钮就都不见了,也就是login那个DIV没东西了,请问是怎么回事?
------解决方案--------------------
提示3遍就对了
function stateChange() {
if (xmlhttp.readystate == 4) {
if (xmlhttp.status == 200) {
document.getElementById("login").innerHTML = unescape(xmlhttp.ResponseText);
}
}
else {
alert("用户名密码错误!");
}
}
改成
function stateChange() {
if (xmlhttp.readystate == 4) {
if (xmlhttp.status == 200) {
if(xmlhttp.ResponseText=="这里写登陆成功返回的字符串"){
document.getElementById("login").innerHTML = unescape(xmlhttp.ResponseText);}else{
alert("用户名密码错误!");
}
}
}
}
因为readystate会改变3次
document.getElementById("login").innerHTML = unescape(xmlhttp.ResponseText);
这句是login DIV中显示返回的字符串登陆成功你返回"欢迎(" + uname + "登录!")
密码错误什么也没返回当然就什么也不现实