ajax+asp.net无刷新验证用户名

webform1
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="ajax无刷新验证用户名.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    
          <script type="text/javascript">
              //定义XMLHttpRequest对象,var是可变参数类型,代表任何一种数据类型。  
              var xmlHttp = false;
              //该时候检查输入用户名数据库中是否已经存在。  
              function checkUserName() {
                  // 检查输入的用户名是否为空。  
                  var tbUserNames = document.getElementById('tbUserNames');
                  if (tbUserNames.value == "")
                      return;
                  // 创建 XMLHttpRequest 对象  
                  try {
                      //使用较新版本的IE浏览器。  
                      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                  }
                  catch (e) {
                      try {
                          //如果为低版本的浏览器。  
                          xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                      }
                      catch (e2) {
                          //XMLHttpRequest对象创建失败,保证Request的值仍为false。  
                          xmlHttp = false;
                      }
                  }
                  //验证创建是否成功,不为ie,则为除了ie之外的谷歌 360 火狐等浏览器。  
                  if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
                      xmlHttp = new XMLHttpRequest();
                  }
                  // 转到的链接地址。  
                  var url = "WebForm2.aspx?UserName=" + tbUserNames.value;
                  // 规定请求的类型、URL 以及是否异步处理请求。Get类型,true为异步执行。  
                  xmlHttp.open("GET", url, true);
                  //onreadystatechange.也就是XMLHttRequest对象的readyState属性改变时。当请求被发送时执行的一些响应任务。  
                  xmlHttp.onreadystatechange = callBack_CheckUserName;
                  // Send the request  
                  xmlHttp.send(null);
              }
              
              //以参数形式传递到另一个函数的函数。  
              function callBack_CheckUserName() {
                  //readyState方法是存有XMLHttpRequest状态,从0到4。  
                  //0是请求未初始化,1服务器连接已经建立 2 请求已经接受 3 请求处理中 4 请求已完成,且响应已就绪。  
                  if (xmlHttp.readyState == 4) {
                      //  如果服务器的响应并非是XML使用responseText否则使用responseXML。responsText返回服务器字符串形式的响应。  
                      var isValid = xmlHttp.responseText;
                      //选择出显示验证结果的标签。  
                      var checkResult = document.getElementById("checkResult");
                      //innerHtml为脱去标签的的外衣。例如,<span>您好</span>,显示您好。  
                      checkResult.innerHTML = (isValid.toString() == "True") ? "恭喜您,这个用户名可以使用" : "很抱歉该会员名已经被使用";
                  }
              }
              
    </script> 

</head>
<body>
      <table id="registerForm">  
        <tr>  
            <td class="title">  
                用户名  
            </td>  
            <td>  
                <input id="tbUserNames" type="text" οnblur="checkUserName()" />  
                <span id="checkResult"></span>  
            </td>  
        </tr>  
        <tr>  
            <td class="title">  
                密码  
            </td>  
            <td>  
                <input id="tbPassword" type="password" />  
            </td>  
        </tr>  
        <tr>  
            <td rowspan="2">  
                <input id="btnSubmit" type="submit" value="提交" />  
            </td>  
        </tr>  
    </table>  
</body>
</html>

webform2 的页面只能有一句话:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="ajax无刷新验证用户名.WebForm2" %>

否则,返回的 isvalid 会是 true\r\n<body></body>等东西,可用的用户名却通不过验证。

webform2

public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // 得到要验证的用户名。  
            string candidateUserName = Request["UserName"];
            if (candidateUserName != null && candidateUserName.ToString() != "host")
            {
                // 初始化验证标记,为false。  
                bool isValid = false;
                // 如果转换为小写字母不为tgb则返回true。  
                if (candidateUserName.ToLower() != "tgb")
                {
                    isValid = true;
                }
                // 清除缓存区所有的html输出。  
                Response.Clear();
                //将指定字符写入HTTP输出。  
                Response.Write(isValid ? "True" :"false");
                //立即发送缓存区的输出。  
                Response.Flush();
            }
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值