您的位置:首页 > 其它

一个简单的异步验证用户名的例子

2010-10-15 17:49 309 查看
1.新建一个aspx页面,

2.里面放一个控件<input id="txtCheckName" type="text" onchange="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,等返回后再去执行下面的代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: