jquery登录的异步验证操作示例


Posted in jQuery onMay 09, 2019

本文实例讲述了jquery登录的异步验证操作。分享给大家供大家参考,具体如下:

//定义一个json
var validate = {
  username : false,
  pwd   : false,
  pwded  : false,
  verify  : false,
  loginUsername : false,
  loginPwd :false
}
//存储错误信息
var $msg = "";
//验证注册表单
$(function(){
  //获取表单对象
  var register = $('form[name=register');
  register.submit(function(){
    var isOK = validate.username && validate.pwd && validate.pwded && validate.verify;
    if(isOK){
      return true;
    }
    //点击提交按钮依次触发失去焦点再次验证
    $('input[name=username]',register).trigger('blur');
    $('input[name=pwd]',register).trigger('blur');
    $('input[name=pwded]',register).trigger('blur');
    $('input[name=verify]',register).trigger('blur');
    return false;
  });
  //验证用户名
  $('input[name=username]',register).blur(function(){
    var username = $(this).val();
    var span = $(this).next();
    //用户名不能为空
    if(username == ''){
      msg = '用户名不能为空';
      span.html(msg).addClass('error');
      validate.username = false;
      return;
    }
    //正则判断
    if(!/^\w{2,14}$/g.test(username)){
      msg = '必须是2-14个字符,字母,数字,下划线';
      span.html(msg).addClass('error');
      validate.username = false;
      return;
    }
    //异步验证用户名是否存在
    $.post(APP + '/Reg/ajax_username',{username : username},function(status){
      console.log(status);
      if(status){
        msg = '通过检测';
        span.html(msg).removeClass('error');
        validate.username = true;
      }else{
        msg = '用户名已经存在';
        span.html(msg).addClass('error');
        validate.username = false;
      }
    },'json');
  });
  //验证密码
  $('input[name=pwd]',register).blur(function(){
    var pwd = $(this).val();
    var span = $(this).next();
    //密码不能为空
    if(pwd == ''){
      msg = '密码不能为空';
      span.html(msg).addClass('error');
      validate.pwd = false;
      return;
    }
    //正则验证
    if(!/^\w{6,20}$/g.test(pwd)){
      msg = '密码必须由6-20个字母,数字,或者下划线组成';
      span.html(msg).addClass('error');
      validate.pwd = false;
      return;
    }
    msg = '通过检测';
    span.html(msg).removeClass('error');
    validate.pwd = true;
  });
  //确认密码
  $('input[name=pwded]',register).blur(function(){
    var pwded = $(this).val();
    var span = $(this).next();
    //确认密码
    if(pwded == ''){
      msg = '请确认密码';
      span.html(msg).addClass('error');
      validate.pwded = false;
      return;
    }
    //判断密码是否一致
    if(pwded != $('input[name=pwd]',register).val()){
      msg = '密码不一致';
      span.html(msg).addClass('error');
      validate.pwded = false;
      returnl;
    }
    msg = '通过检测';
    span.html(msg).removeClass('error');
    validate.pwded = true;
  });
  //验证验证码
  $('input[name=verify]',register).blur(function(){
    var verify = $(this).val();
    var span = $(this).next().next();
    //不能为空
    if(verify == ''){
      msg = '请输入验证码';
      span.html(msg).addClass('error');
      validate.verify = false;
      return;
    }
    //异步判断验证码
    $.post(APP + '/Reg/ajax_code',{verify : verify},function(status){
      if(status){
        msg = '通过检测';
        span.html(msg).removeClass('error');
        validate.verify = true;
      }else{
        msg = '验证码错误';
        span.html(msg).addClass('error');
        validate.verify = false;
        return;
      }
    },'json');
  });
  //登录form表单验证
  var login = $('form[name=login]');
  //登录提交事件
  login.submit(function(){
    if(validate.loginUsername && validate.loginPwd){
      return true;
    }
    //依次触发失去焦点动作
    $('input[name=username]',login).trigger('blur');
    $('input[name=pwd',login).trigger('blur');
    return false;
  });
  //验证登录用户名
  $('input[name=username]',login).blur(function(){
    var username = $(this).val();
    var span = $('#login-msg');
    //判断是否为空
    if(username == ''){
      msg = '请输入账号';
      span.html(msg).addClass('error');
      validate.loginUsername = false;
      return;
    }
    msg = '';
    span.html(msg);
    validate.loginUsername = true;
  });
  //验证登录密码
  $('input[name=pwd]',login).blur(function(){
    var pwd = $(this).val();
    var span = $('#login-msg');
    //判断登录密码是否为空
    if(pwd == ''){
      msg = '请输入密码';
      span.html(msg).addClass('error');
      validate.loginPwd = false;
      return;
    }
    var data = {
        username : $('input[name=username]',login).val(),
        pwd : pwd
      };
    //异步验证
    $.post(APP + '/Login/ajax_login',data,function(status){
      if(status){
        msg = '';
        span.html(msg).removeClass('error');
        validate.loginUsername = true;
        validate.loginPwd = true;
      }else{
        msg = '用户名或密码错误';
        span.html(msg).addClass('error');
        validate.loginUsername = false;
        validate.loginPwd = false;
      }
    },'json');
    msg = '';
    span.html(msg);
    validate.loginPwd = true;
  });
})
jQuery 相关文章推荐
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
jQuery中map函数的两种方式
Apr 07 jQuery
jQuery实现radio第一次点击选中第二次点击取消功能
May 15 jQuery
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
Aug 09 jQuery
jquery对table做排序操作的实例演示
Aug 10 jQuery
jQuery实现的鼠标滚轮控制图片缩放功能实例
Oct 14 jQuery
如何用input标签和jquery实现多图片的上传和回显功能
May 16 jQuery
jQuery实现图片简单轮播功能示例
Aug 13 jQuery
jquery实现选项卡切换代码实例
May 14 jQuery
jQuery Raty星级评分插件使用方法实例分析
Nov 25 jQuery
jQuery实现轮播图效果
Nov 26 jQuery
Jquery如何使用animation动画效果改变背景色的代码
Jul 20 jQuery
jQuery动态生成的元素绑定事件操作实例分析
May 04 #jQuery
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
May 04 #jQuery
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
Apr 28 #jQuery
jQuery对底部导航进行跳转并高亮显示的实例代码
Apr 23 #jQuery
详解jquery和vue对比
Apr 16 #jQuery
JQuery Ajax跨域调用和非跨域调用问题实例分析
Apr 16 #jQuery
详解jQuery中的getAll()和cleanData()
Apr 15 #jQuery
You might like
第一节--面向对象编程
2006/11/16 PHP
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
Javascript对象Clone实例分析
2015/06/09 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
Python写的贪吃蛇游戏例子
2014/06/16 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
机电工程学生自荐信范文
2013/12/07 职场文书
小学国庆节活动方案
2014/02/11 职场文书
入党自我鉴定
2014/03/25 职场文书
职工小家建设活动方案
2014/08/25 职场文书
单位单身证明样本
2014/10/11 职场文书
军人离婚协议书样本
2014/10/21 职场文书
鲁迅故居导游词
2015/02/05 职场文书
会计求职自荐信
2015/03/26 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
初级职称评定工作总结
2015/08/13 职场文书
安全教育的主题班会
2015/08/13 职场文书
python pygame入门教程
2021/06/01 Python