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 相关文章推荐
javascript实现图片切换的幻灯片效果源代码
Dec 12 Javascript
Backbone.js的Hello World程序实例
Jun 19 Javascript
JavaScript File分段上传
Mar 10 Javascript
JS判断元素是否在数组内的实现代码
Mar 30 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
May 30 Javascript
微信小程序 五星评分的实现实例
Aug 04 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
Aug 10 Javascript
JS实现动态添加外部js、css到head标签的方法
Jun 05 Javascript
Nautil 中使用双向数据绑定的实现
Oct 02 Javascript
Vue使用虚拟dom进行渲染view的方法
Dec 26 Javascript
Vue 同步异步存值取值实现案例
Aug 05 Javascript
Vue页面渲染中key的应用实例教程
Jan 12 Vue.js
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
关于js与php互相传值的介绍
2013/06/25 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
2014/06/30 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
JavaScript修改css样式style动态改变元素样式
2013/12/16 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
2018/12/28 Javascript
javascript中join方法实例讲解
2019/02/21 Javascript
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
金融行业务员的自我评价
2013/12/13 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
绿色城市实施方案
2014/03/19 职场文书
2014年质检员工作总结
2014/11/18 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
工作感言一句话
2015/08/01 职场文书
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
TS 类型收窄教程示例详解
2022/09/23 Javascript