1.新建一个aspx页面,
2.里面放一个控件<input id="txtCheckName" type="text" οnchange="CheckName()"/>
<span id="checkNameText"></span>
在txtCheckUser里输入用户名,在span里显示是否存在,当输入完成input失去焦点时触发事件
3.在JavaScript里语句
<script type="text/javascript">
var request = new ActiveXObject("Microsoft.XMLHTTP");
function CheckName() {
var checkeName =$("#txtCheckName")[0].value;
request.open("Get", "CheckUserName.aspx?userName=" + checkeName, true);
request.send();
request.onreadystatechange = function() { checkNameText(); }
}
function checkNameText() {
if (request.readyState == 4) {//这个判断是否已经存在返回值,在返回2,3的时候取值会报错
if (request.status == 200) {
if (request.responseText == 'True') {
document.getElementById("checkNameText").innerHTML = "<font color=red>用户已存在</font>";
}
else {
document.getElementById("checkNameText").innerHTML = "<font color=green>可以注册</font>";
}
}
}
}
4.新建CheckUserName页面,注意在里面要把除了<%@以外的都去掉,否则当Response.Write的时候会把下面的内容也返回回来,影响判断。
在page_load 返回True或者False
//....if exist
Response.Write("True");
else
Response.Write("False");
这里需要注意的是request.open("Get", "CheckUserName.aspx?userName=" + checkeName, true);
这里面第三个参数 true
这个参数如果是True说明是异步调用,程序继续执行,也就是request.send()后继续执行 request.onreadystatechange = function() { checkNameText(); },不用等返回结果
而当这个参数是False的时候,当request.send()后就去执行checkUserName.aspx,等返回后再去执行下面的代码。