Ajax异步验证用户名是否已经存在

         当我们注册一个新的用户的时候,都需要验证下注册的用户是否已经存在,经常发现网站上都是这样实现友好提示的,如下图:



     那具体怎么实现这样异步验证用户名是否已经存在的呢?

     这里用到了Ajax的异步操作,也就相当于,Ajax发送了一个需要验证用户名是否存在的请求,然后在设置请求所返回的时间,完成用户名是否存在的请求。


下面看下具体的代码:

<span style="font-family:KaiTi_GB2312;font-size:18px;">    //定义一个请求
	var xmlHttp;
	 
	function createXMLHttpRequest() {
		//表示当前浏览器不是ie,如ns,firefox
		if(window.XMLHttpRequest) {
			xmlHttp = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	
	
	//field为获取用户所填写的用户名
	function validate(field) {
        //判断用户名是否为空
		if (trim(field.value).length != 0) {
			//创建Ajax核心对象XMLHttpRequest
			createXMLHttpRequest();
			//将获取用户名发送到另一个jsp中去验证
			var url = "user_validate.jsp?userId=" + trim(field.value) + "&time=" + new Date().getTime();
			
			//设置请求方式为GET,设置请求的URL,设置为异步提交,true为异步,false为同步
			xmlHttp.open("GET", url, true);	
			//将方法地址复制给onreadystatechange属性
			//类似于电话号码
			xmlHttp.onreadystatechange=callback;
			
			//将设置信息发送到Ajax引擎
			xmlHttp.send(null);
		} else {
			document.getElementById("spanUserId").innerHTML = "";
		}	
	}
	
	//发送请求之后,返回的状体
	function callback() {
		//alert(xmlHttp.readyState);
		//Ajax引擎状态为成功
		if (xmlHttp.readyState == 4) {
			//HTTP协议状态为成功
			if (xmlHttp.status == 200) {
				if (trim(xmlHttp.responseText) != "") {
					//设置请返回的消息信息
					document.getElementById("spanUserId").innerHTML = "<font color='red'>" + xmlHttp.responseText + "</font>"
				}else {
					document.getElementById("spanUserId").innerHTML = "";
				}
			}else {
				alert("请求失败,错误码=" + xmlHttp.status);
			}
		}
	}</span>

将获取的用户名去验证:这里为user_validate.jsp页面,具体的后台代码就不作展示了!

<span style="font-family:KaiTi_GB2312;font-size:18px;"><%
	//Thread.currentThread().sleep(5000);
	String userId = request.getParameter("userId");
	if (UserManager.getInstance().findUserById(userId) != null) {
		out.println("用户代码已经存在");
	}	
%></span>


用户名html代码:
<span style="font-family:KaiTi_GB2312;font-size:18px;"><td width="78%">
	<input name="userId" type="text" class="text1" id="userId"
	    size="10" maxlength="10" οnkeypress="userIdOnKeyPress()" value="<%=userId %>" οnblur="validate(this)">
	<span id="spanUserId"></span>
</td></span>

整体的一个异步验证用户名是否存在的例子就完成了,这样提高了用户体验度,美化了界面!
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值