//定义一个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登录的异步验证的更多相关文章

  1. 使用 jQuery Ajax 异步登录,并验证用户输入信息(maven)

    使用 jQuery Ajax 异步登录,并验证用户输入信息(maven) 本篇内容: (1)上一篇是使用同步的请求实现登录,并由 Servlet 决定登陆后下一步做哪些事情,本篇使用 jQuery A ...

  2. ASP.NET MVC验证 - jQuery异步验证

    本文主要体验通过jQuery异步验证. 在很多的教材和案例中,MVC验证都是通过提交表单进行的.通过提交表单,可以很容易获得验证出错信息.因为,无论是客户端验证还是服务端验证,总能找到与Model属性 ...

  3. MVC验证11-对复杂类型使用jQuery异步验证

    原文:MVC验证11-对复杂类型使用jQuery异步验证 本篇体验使用"jQuery结合Html.BeginForm()"对复杂类型属性进行异步验证.与本篇相关的"兄弟篇 ...

  4. ASP.NET MVC异步验证是如何工作的03,jquery.validate.unobtrusive.js是如何工作的

    在上一篇"ASP.NET MVC异步验证是如何工作的02,异步验证表单元素的创建"中了解了ASP.NET异步验证是如何创建表单元素的,本篇体验jquery.validate.uno ...

  5. ASP.NET MVC异步验证是如何工作的01,jQuery的验证方式、错误信息提示、validate方法的背后

    ASP.NET MVC借助jQuery的验证机制,提供了一套从客户端到服务端异步验证的解决方案,通常情况下,用起来相当方便.但面对一些相对特殊的情况,可能会遇到验证失效的场景,比如在使用ajax动态异 ...

  6. ssm框架整合+Ajax异步验证

    SSM框架是目前企业比较常用的框架之一,它的灵活性.安全性相对于SSH有一定的优势.说到这,谈谈SSM和SSH的不同点,这也是企业常考初级程序员的面试题之一.说到这两套框架的不同,主要是持久层框架Hi ...

  7. formValidator输入验证、异步验证实例 + licenseImage验证码插件实例应用

    实例技术:springmvc 实现功能:完整用户登录流程.输入信息规则校验.验证码异步校验. 功能清单: 1.springmvc控制器处理get请求(/member/login.html),进行静态页 ...

  8. validate+jquery+ajax表单验证

    1.案例 1.1 Html form表单内容 <form class="cForm" id="cForm" method="post" ...

  9. ASP.NET MVC Jquery Validate 表单验证的多种方式

    在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体验也会得到很大的提升.在开发过程中我们可以不借助 JS 库,自己去手写 JS ...

随机推荐

  1. HTTPS那些事儿(一)-HTTPS原理

    HTTPS那些事儿(一) 近期看了<http权威指南>的几个章节.对HTTPS有了部分了解,同一时候在网上查阅了一些资料,遂打算记录一下心得,写的仓促,肯定有非常多错误的地方.欢迎大家指正 ...

  2. JavaScript事件在WebKit中的处理流程研究

    本文主要探讨了JavaScript事件在WebKit中的注冊和触发机制. JS事件有两种注冊方式: 通过DOM节点的属性加入或者通过node.addEventListener()函数注冊: 通过DOM ...

  3. 深入Garbage First垃圾收集器(一)术语

    Garbage垃圾收集器的原理,在这篇博客中有讲到,可以拿来参考下, Getting Started with the G1 Garbage Collector(译) 另外在这篇博客中也有讲到很多垃圾 ...

  4. MFC学习之对话框---对话框之间的domodle 数据传递

    if(IDOK==data.DoModal()){tx->m_gao=data.m_he;tx->m_kuan=data.m_wi;tx->m_jiao=data.m_jiaoju; ...

  5. linux命令详解:file命令

    前言 file命令可以获取多种文件类型,包括文本文件.脚本文件.源码文件.多媒体文件(音频视频)等.file是通过查看文件的头部内容,来获取文件的类型,而不像Window那样是通过扩展名来确定文件类型 ...

  6. Python 008- 游戏2048

    #-*- coding:utf-8 -*- import curses from random import randrange, choice # generate and place new ti ...

  7. 2016/7/7 设置wamp2.5 mysql密码 重点是mysql版本

    密码设置时要注意mysql版本.版本不同,效果不同. 方法/步骤     安装好wamp后,右击wamp->MySQl->MySql console(控制台)   提示输入密码,因为密码为 ...

  8. SAM4E单片机之旅——5、LED呼吸和PWM

    PWM在高频情况下,一个很好的用处就是通过控制占空比来控制输出的功率,比如控制风扇转速.LED灯的亮度等.这次就利用PWM的中断功能,动态改变脉冲的占空比,来实现呼吸灯的效果. 一.实现思路 PWM可 ...

  9. windows下使用ofstream默认输出内存数据到文件中时,会自动将0A换成0A0D

    0A即\n,而0D是\r,windows下换行是\n\r,因此会自动转换. 但是,这样会带来很大的问题,导致由内存写入文件中的数据和内存中不一样,还不知道是什么原因造成的. 特别是将从网络接收来的pn ...

  10. Storage Types and Storage Policies

    https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/ArchivalStorage.html Introduc ...