//定义一个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. Spring的常见问题及答案

    目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spri ...

  2. 【MatConvNet】配置GPU

    参照大神的方法:http://www.th7.cn/system/win/201603/155182.shtml 第一步:需要安装cuda.VS2013:cuda默认路径,注意cuda版本和GPU要匹 ...

  3. 一个兼容性比较好的图片左右滚动的js

    下载地址:http://www.cnblogs.com/RightDear/admin/Files.aspx 文件:shhds.rar

  4. EasyDarwin开源摄像机访问EasyCamera中海康摄像头语音对讲和云台控制转发实现

    转自:http://blog.csdn.net/yanzhuomin/article/details/52887311 EasyCamera中关于摄像头SDK的调用都集中在EasyCameraSour ...

  5. asp.net mvc4 登录界面

    说明:开发环境 asp.net mvc4 c#语言 1.项目目录结构 2.Login控制器中 public ActionResult Index() { return View(); } 对应Inde ...

  6. Boosting AdaBoosting Algorithm

    http://math.mit.edu/~rothvoss/18.304.3PM/Presentations/1-Eric-Boosting304FinalRpdf.pdf Consider MIT ...

  7. 一起来学linux:PAM模块

    在Linux中执行有些程序时,这些程序在执行前首先要对启动它的用户进行认证,符合一定的要求之后才允许执行,例如login, su等 在Linux中进行身份或是状态的验证程序是由PAM来进行的,PAM( ...

  8. Long转换为date

    public static void main(String[] args) { Long time = System.currentTimeMillis(); System.out.println( ...

  9. POJ 1611 The Suspects (并查集+数组记录子孙个数 )

    The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 24134   Accepted: 11787 De ...

  10. void类型和void *指针类型(网上摘抄总结)【转】

    http://www.blogjava.net/fhtdy2004/archive/2009/07/09/286004.html 现在在学linux编程过程中遇到很多void *指针类型,由于c很早学 ...