Ajax异步检查用户名是否存在

在任何网站注册用户的时候,都会检查用户是否已经存在。很久以前的处理方式是将所有数据提交到服务器端进行验证,很显然这种方式的用户体验很不好;后来有了Ajax,有了异步交互,当用户输完用户名继续填写其他信息的时候,Ajax就将信息发到了服务器去检查该用户名是否已经被注册了,这样如果用户名已经存在,不用等用户将所有数据都提交就可以给出提示。采用这种方式大大改善了用户体验,今天就一起跟大家聊聊这种交互方式。

下面是用JS获取用户Id然后将其发送给user_validate.jsp页面,然后通过callback方法接收页面返回的消息并通知用户。

function validate(field) {
  if (trim(field.value).length != 0) {
    //创建Ajax核心对象XMLHttpRequest
    createXMLHttpRequest(); 

    var url = "user_validate.jsp?userId=" + trim(field.value) + "&time=" + new Date().getTime(); 

    //设置请求方式为GET,设置请求的URL,设置为异步提交
    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) != "") {
        //alert(xmlHttp.responseText);
        document.getElementById("spanUserId").innerHTML = "<font color='red'>" + xmlHttp.responseText + "</font>";
      }else {
        document.getElementById("spanUserId").innerHTML = "";
      }
    }else {
      alert("请求失败,错误码=" + xmlHttp.status);
    }
  }
}

user_validate.jsp页面接收用户Id并根据Id查询是否已存在,如果存在返回,不存在什么也不返回。

<%
  String userId = request.getParameter("userId");
  if(UserManager.getInstance().findUserById(userId) != null) {
    out.println("用户代码已经存在");
  }
%>

当光标离开用户代码文本框触发检查方法。

代码如下:

<input name="userId" type="text" id="userId" size="10" maxlength="10"  value="<%=userId %>" onblur="validate(this)">

效果图

关于怎么根据用户Id查询是否已存在的代码我就不给大家帖出来了,因为实在太简单了,贴出来怕浪费大家带宽。

做Web开发要更多的考虑用户体验,多运用客户端验证(当然为了安全还要进行一次服务器验证)和异步交互的方式可以有效提升用户体验。只有用户用着舒心,用户喜欢用我们做的东西,我们的劳动才有意义,我们的目标就是让用户满意。

细节决定成败,页面的各种提示都是很小的细节,不要小看这些小细节,做好了可以为你带来更多的用户;做的不好很可能让用户不再使用。程序猿们用心做好细节,让用户爱上Web体验吧!

(0)

相关推荐

  • jsp+ajax实现无刷新(鼠标离开文本框即验证用户名)实现思路

    jsp+ajax实现无刷新,鼠标离开文本框即验证用户名,操作如下:新建一个输入页面,起名为input.jsp, 复制代码 代码如下: <%@ page contentType="text/html; charset=utf-8"%> <html> <head> <title>jsp+ajax实现无刷新_鼠标离开文本框即验证用户名</title> <meta http-equiv="Content-Type&qu

  • Ajax实时验证用户名/邮箱等是否已经存在的代码打包

    今天分享一个"利用Ajax技术来检测用户名是否存在"的例子. 利用Ajax技术来检测用户名是否存在的原理流程图: 最终结果截图: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="

  • PHP+AJAX实现无刷新注册(带用户名实时检测)

    很多时候,我们在网上注册个人信息,在提交完页面后,总得等待页面刷新来告诉我们注册是否成功,遇到网络差的时候,如果注册了一大串的东西,在经过漫长的等待页面刷新后,得到的确是"您的用户名已被使用"或XXXXXXX不合法,我想大家的心情一定特别不爽,今天就介绍个AJAX实现页面不刷新注册+实时检测用户信息的简单注册程序,希望对大家有所帮助.好的,先看注册界面代码: <table width="831" border="0" align="

  • PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)

    前 言 直接上代码有点不厚道.于是按照天朝传统,整段描述吧....(本人语言表达能力有限,大家忍着看) 功 能 在网站注册用户时使用,主要为了无刷新异步验证用户输入的用户名或者Email是否已注册. 这功能大家肯定见过,大多数网站都有的,我一直对这个功能很感兴趣,所以这几天研究了下 jQuery + Ajax 整了一个功能不算完善,但足以应付普通使用的代码 (更牛的功能大家自己去发掘) 文 件 说 明 reg.php //为注册页面 check_user.php //为用户验证页面 (GET,P

  • Ajax实现异步刷新验证用户名是否已存在的具体方法

    都是简单的实例,所以直接发代码 静态页面Ajax.html 复制代码 代码如下: <html>    <head>        <title>Ajax</title>        <script type="text/javascript">            function loadXMLDoc() {                if (document.getElementById("account

  • PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程

    PHP+Ajax检测用户名或邮件注册时是否已经存在是论坛或会员系统中常见的一个重要功能.本文就以实例形式简单描述这一功能的实现方法.具体步骤如下: 一.PHP检测页面 check.php页面代码如下: <script type="text/javascript" src="jiance.js"></script> <form name="myform" action="" method="

  • Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)

    其中用到了jquery插件来验证用户名哦,这里是利用jquery ajax来验证用户名是否存在哦.大家看看效果图,后面将附上源码下载. jquery框架实现的ajax 验证用户名是否存在的部分JS 复制代码 代码如下: $("#accounts").formValidator({onshow:"请输入用户名",onfocus:"用户名至少4个字符,最多10个字符",oncorrect:"该用户名可以注册"}).inputVal

  • jquery ajax 检测用户注册时用户名是否存在

    首先需要一个添加年级的页面,暂时叫grade.htm 这个文件需要引入两个文件jquery.js(jquery框架文件)和grade.js(验证的单独文件). 下面的input用于输入用户名字,id="gradeInfo"是为了显示提示信息用的. grade.htm 复制代码 代码如下: <input type="text" size="6" name="NAME" id="NAME"/><

  • 基于jQuery实现的Ajax 验证用户名是否存在的实现代码

    实例: 1.请求页面AJax.aspx HTML代码 复制代码 代码如下: <div> <input id="txtName" type="text" /><input type="button" value="查看用户名是否存在" id="btn" onclick="JudgeUserName();" /> <div id="show

  • ajax 检测用户名是否被占用

    复制代码 代码如下: //检测用户名是否被占用 function GetO(){ var ajax=false; try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { ajax = false; } } if (!ajax && typeof X

随机推荐