无刷新检测用户名
无刷新检测用户名无刷新检测用户名功能为:当用户输入用户名,用户名的文本框失去焦点后就检测用户名是否重复,不用再点击一个按钮才能检测前台代码:以下是引用片段:
这个是我在网上找的 我不知道怎吗用 哪位高手给注释一下 详细的
谢谢了[em14] [em14] [em14] [em14] [em14] [em14]
<script type="text/JavaScript" language="javascript">
var XMLHttp = null;
function CheckUser()
{
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(err1)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(err2)
{
xmlHttp = new XMLHttpRequest();
}
}
var Text1 = document.getElementById("Text1");
var url = "chkuser.aspx?User=" + Text1.value;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = OnHandler;
xmlHttp.send(null);
}
function OnHandler()
{
if(xmlHttp.readyState == 4)
{
var isValid = xmlHttp.responseText;
var exists = document.getElementById("exsits");
exists.innerHTML = isValid.substring(0,4);
}
}
</script>
<input id="Text1" type="text" /><label d="exsits"></label><br />
然后建一个chkuser.aspx,其后台代码改为:
以下是引用片段:
protected void Page_Load(object sender, EventArgs e)
{
string user = this.Request.QueryString["User"];
if (UserExist(user))
{
Response.Write("存在");
}
else
{
Response.Write("不存在");
}
}
private bool UserExist(string username)
{
ClassLib.Employee emp = new ClassLib.Employee();
return emp.EmpNameExist(username);
}
你需要去看ajax 方面的教程
就这段代码而言 就是创建 XMLHttpRequest 对象实例.
通过其 responseText 属性 获取 chkuser.aspx 的 response 的内容
XMLHttpRequest.open() 方法 异步 向 chkuser.aspx 提交请求
其中的参数 GET,url,true get 即method=get url 为被请求页面地址 即chkuser.aspx true 即 异步请求 如果是flase 则为同步请求 ... 如果设置false ajax 就没啥意义了...
另外:xmlHttp.readyState == 4 就是 chkuser.aspx 处理 请求的状态 4 为就绪 也就是 处理完成 并返回了数据....
但是就这段代码而言 至少 少了 2样关键的东西
一是 没有写 当readyState <4 也就是 chkuser.aspx 处于 没完成 处理 的 其他状态 时 该做什么(一般是 spanid.innerHTML='loading'或='<img src="载入进度条的gif动画">' ...这都是常规做法啦)
二是 错误处理 如 xmlHttp.status==404 或500 如没找到XMLHttpRequest.open() 方法所请求的页面 或服务器出了问题 时 该做什么 [em02] 我现在需要尽快把这效果做出来
可以给我写一下具体的吗 在这里等结果,还不如就去认真的花一天时间看看ajax
《Ajax基础教程》
电子书下载:
http://www.51leifeng.net/viewthread.php?tid=2268&highlight=ajax 要块点完成吗??
可以
前台调用后台的方法 等下我在C#模块给你解决 一会自己在里面去看下的嘛
页:
[1]
