AJAX(三)--实例无刷新验证用户名是否存在

本文详细解析了AJAX技术如何在淘宝账户注册过程中实现账户名自动检测,提高了用户体验,通过客户端脚本与服务器端交互,避免了刷新整个页面的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        我们知道在注册淘宝账户时,当我们注册的账户名与其他人同名的时候,系统会自动的给出提示,并且给出推荐使用的账户名,并没有完全的刷新整个页面,而是悄悄的向服务器端发送请求进行验证,让我们感觉很舒服,这就是AJAX技术的作用,大大增加了用户体验。

         我们查看源代码就可以看到客户端脚本,使用的AJAX技术。

         

                        

                      注册界面代码:

             

  1. <html xmlns="http://www.w3.org/1999/xhtml">  
  2. <head runat="server">  
  3.     <title>ajax例子--登录用户名自动检测无需再设置其他的按钮</title>  
  4.     <link href="StyleSheet.css" rel="stylesheet" type="text/css" />  
  5.       <script type="text/javascript">  
  6.           //定义XMLHttpRequest对象,var是可变参数类型,代表任何一种数据类型。  
  7.           var xmlHttp = false;  
  8.   
  9.           //该时候检查输入用户名数据库中是否已经存在。  
  10.           function checkUserName() {  
  11.                 
  12.               // 检查输入的用户名是否为空。  
  13.               var tbUserName = document.getElementById('tbUserName');  
  14.               if (tbUserName.value == "")  
  15.                   return;  
  16.   
  17.               // 创建 XMLHttpRequest 对象  
  18.               try {  
  19.                     //使用较新版本的IE浏览器。  
  20.                   xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");  
  21.                    
  22.               }  
  23.               catch (e) {  
  24.                   try {  
  25.                         //如果为低版本的浏览器。  
  26.                       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");  
  27.                   }  
  28.                   catch (e2) {  
  29.                        //XMLHttpRequest对象创建失败,保证Request的值仍为false。  
  30.                       xmlHttp = false;  
  31.                   }  
  32.               }  
  33.               //验证创建是否成功,不为ie,则为除了ie之外的谷歌 360 火狐等浏览器。  
  34.               if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {  
  35.                   xmlHttp = new XMLHttpRequest();  
  36.               }  
  37.   
  38.   
  39.               // 转到的链接地址。  
  40.               var url = "CheckUserNameService.aspx?UserName=" + tbUserName.value;  
  41.   
  42.               // 规定请求的类型、URL 以及是否异步处理请求。Get类型,true为异步执行。  
  43.               xmlHttp.open("GET", url, true);  
  44.   
  45.               //onreadystatechange.也就是XMLHttRequest对象的readyState属性改变时。当请求被发送时执行的一些响应任务。  
  46.               xmlHttp.onreadystatechange = callBack_CheckUserName;  
  47.   
  48.               // Send the request  
  49.               xmlHttp.send(null);  
  50.   
  51.           }  
  52.           //以参数形式传递到另一个函数的函数。  
  53.           function callBack_CheckUserName() {  
  54.               //readyState方法是存有XMLHttpRequest状态,从0到4。  
  55.               //0是请求未初始化,1服务器连接已经建立 2 请求已经接受 3 请求处理中 4 请求已完成,且响应已就绪。  
  56.               if (xmlHttp.readyState == 4) {  
  57.                 //  如果服务器的响应并非是XML使用responseText否则使用responseXML。responsText返回服务器字符串形式的响应。  
  58.                   var isValid = xmlHttp.responseText;  
  59.                   //选择出显示验证结果的标签。  
  60.                   var checkResult = document.getElementById("checkResult");  
  61.                   //innerHtml为脱去标签的的外衣。例如,<span>您好</span>,显示您好。  
  62.                   checkResult.innerHTML = (isValid =="true") ? "恭喜您,这个用户名可以使用" : "很抱歉该会员名已经被使用";  
  63.               }  
  64.           }  
  65.   
  66.       
  67.     </script>  
  68. </head>  
  69. <body>  
  70.      <table id="registerForm">  
  71.         <tr>  
  72.             <td class="title">  
  73.                 用户名  
  74.             </td>  
  75.             <td>  
  76.                 <input id="tbUserName" type="text" onblur="checkUserName()" />  
  77.                 <span id="checkResult"></span>  
  78.             </td>  
  79.         </tr>  
  80.         <tr>  
  81.             <td class="title">  
  82.                 密码  
  83.             </td>  
  84.             <td>  
  85.                 <input id="tbPassword" type="password" />  
  86.             </td>  
  87.         </tr>  
  88.         <tr>  
  89.             <td rowspan="2">  
  90.                 <input id="btnSubmit" type="submit" value="提交" onclick="checkUserName()" />  
  91.                   
  92.   
  93.             </td>  
  94.         </tr>  
  95.     </table>  
  96. </body>  
  97. </html>  


跳转的URL界面,验证界面代码:

          

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CheckUserNameService.aspx.cs"  %>  
  2. <script runat ="server">  
  3.      protected void Page_Load(object sender, EventArgs e)  
  4.     {  
  5.             // 得到要验证的用户名。  
  6.             string candidateUserName = Request["UserName"];  
  7.           
  8.             // 初始化验证标记,为false。  
  9.             bool isValid = false;  
  10.             // 如果转换为小写字母不为tgb则返回true。  
  11.             if (candidateUserName.ToLower() != "tgb")  
  12.             {  
  13.                 isValid = true;  
  14.             }  
  15.           
  16.             // 清除缓存区所有的html输出。  
  17.             Response.Clear();  
  18.             //将指定字符写入HTTP输出。  
  19.             Response.Write(isValid ? "true" : "false");  
  20.             //立即发送缓存区的输出。  
  21.             Response.Flush();      }  
  22. </script>  


 

得到的显示结果:

             

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值