Ajax验证用户名或昵称是否已被注册


Posted in Javascript onApril 05, 2017

JavaScript中XMLHttpRequest对象是整个Ajax技术的核心,它提供了异步发送请求的能力 。而用户名或昵称的验证就可以使XMLHttpRequest对象实现。下面是个小例子。

页面:

简单的输入框

<body>
  昵称:<input type="text" name="username" ><span id="msg">请输入昵称</span><br>
  密码:<input type="password" name="password">
 </body>

Ajax验证用户名或昵称是否已被注册

JS代码如下:

window.onload=function()
    {
      var nameElement=document.getElementsByName("username")[0];
      //为昵称选项注册onblur事件
      nameElement.onblur=function()
      {
        var name=this.value;
        //1.获取XMLHttpRequest对象
        var req=getXMLHttpRequest();
        //4.处理响应结果
        req.onreadystatechange=function(){
          if(req.readyState==4){//XMLHttpRequest对象读取成功
            if(req.status==200){//服务器相应正常
              var msg=document.getElementById("msg");
              //根据返回的结果显示不同的信息
              if(req.responseText=="true"){
                msg.innerHTML="<font color='red'>该昵称已注册</font>";
              }else{
                msg.innerHTML="<font color='green'>可以使用</font>";
              }
            }
          }
        }
        //2.建立一个连接
        req.open("get","${pageContext.request.contextPath}/servlet/checkUserServlet?name="+name);
        //3.发送get请求
        req.send(null);
      }
    }

getElementsByName方法,根据浏览器的不同获得不同的XMLHttpRequest对象(提供异步发送请求的能力):

function getXMLHttpRequest(){
  var xmlhttp;
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp = new XMLHttpRequest();
    } else {// code for IE6, IE5
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return xmlhttp;
}

servlet:仅仅为了测试,并没有真正从dao层查询

public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    PrintWriter pw=response.getWriter();
    String name=request.getParameter("name");
    //判断昵称是否已被使用
    if("tom".equals(name)){
      pw.print(true);
    }else{
      pw.print(false);
    }
  }
  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    doGet(request, response);
  }

测试:

Ajax验证用户名或昵称是否已被注册

由于在servlet中我们只验证tom是否存在,所以tom显示已使用。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
33个优秀的 jQuery 图片展示插件分享
Mar 14 Javascript
jQuery取id有.的值的方法
May 21 Javascript
jQuery事件绑定和委托实例
Nov 25 Javascript
js变形金刚文字特效代码分享
Aug 20 Javascript
基于jQuery实现的QQ表情插件
Aug 25 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
Jun 08 Javascript
详解Vue 事件驱动和依赖追踪
Apr 22 Javascript
Ionic2调用本地SQlite实例
Apr 22 Javascript
浅谈vue路径优化之resolve
Oct 13 Javascript
详解js访问对象的属性和方法
Oct 25 Javascript
详解小程序云开发数据库
May 20 Javascript
JsonServer安装及启动过程图解
Feb 28 Javascript
JS二叉树的简单实现方法示例
Apr 05 #Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
Apr 05 #Javascript
js获取指定时间的前几秒
Apr 05 #Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
Apr 05 #Javascript
webpack2.0搭建前端项目的教程详解
Apr 05 #Javascript
详解使用fetch发送post请求时的参数处理
Apr 05 #Javascript
详解用webpack2.0构建vue2.0超详细精简版
Apr 05 #Javascript
You might like
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
javascript scrollTop正解使用方法
2013/11/14 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
python实现基本进制转换的方法
2015/07/11 Python
python简单获取数组元素个数的方法
2015/07/13 Python
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
简单实现python数独游戏
2018/03/30 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
2018/05/11 Python
Python清空文件并替换内容的实例
2018/10/22 Python
详解python 爬取12306验证码
2019/05/10 Python
python程序文件扩展名知识点详解
2020/02/27 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
英国现代市场:ARKET
2019/04/10 全球购物
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
园长自我鉴定
2013/10/06 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
高中学生自我评价范文
2014/09/23 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
学校社团活动总结
2015/05/07 职场文书
2015年教师党员个人总结
2015/11/24 职场文书