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

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,等返回后再去执行下面的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值