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 相关文章推荐
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
Oct 29 Javascript
javascript操作JSON的要领总结
Dec 09 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 Javascript
判断js对象是否拥有某一个属性的js代码
Aug 16 Javascript
JavaScript事件委托的技术原理探讨示例
Apr 17 Javascript
jQuery对象的length属性用法实例
Dec 27 Javascript
JSON字符串和对象之间的转换详解
May 26 Javascript
JS实现的相册图片左右滚动完整实例
Nov 23 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
May 15 jQuery
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
Aug 09 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
Dec 29 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
Nov 06 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截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
PHP中overload与override的区别
2017/02/13 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
PHP join()函数用法与实例讲解
2019/03/11 PHP
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
Python中threading模块join函数用法实例分析
2015/06/04 Python
Python入门学习之字符串与比较运算符
2015/10/12 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
python分布式编程实现过程解析
2019/11/08 Python
利用Python制作动态排名图的实现代码
2020/04/09 Python
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
介绍一下Linux内核的排队自旋锁
2014/08/27 面试题
行政办公员自我评价分享
2013/12/14 职场文书
运动会领导邀请函
2014/01/10 职场文书
应届生求职信范文
2014/05/26 职场文书
低碳环保标语
2014/06/12 职场文书
日语系毕业求职信
2014/07/27 职场文书
2014年世界艾滋病日演讲稿
2014/11/28 职场文书
三方合作意向书范本
2015/05/09 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
绿里奇迹观后感
2015/06/15 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js