//定义一个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. Java的泛型约束和限制

    不能用基本类型实例化类型参数 不能用类型参数代替基本类型:例如,没有Pair<double>,只有Pair<Double>,其原因是类型擦除.擦除之后,Pair类含有Objec ...

  2. Python之Pandas库常用函数大全(含注释)

    前言:本博文摘抄自中国慕课大学上的课程<Python数据分析与展示>,推荐刚入门的同学去学习,这是非常好的入门视频. 继续一个新的库,Pandas库.Pandas库围绕Series类型和D ...

  3. Ubuntu上Eclipse安装PyDev方法和配置

    Ubuntu11.10中Eclipse安装PyDev插件方法 PyDev是Eclipse中用来开发python的一个插件,个人比较喜欢,下面介绍在Ubuntu下安装这个插件的方法.(在Windows下 ...

  4. javaweb开发之jsp

    一.WEB应用的目录结构 通常我们是在IDE中创建web应用程序,IDE自动为我们实现了WEB的目录结构,下面来看如何徒手创建一个WEB程序. 首先来看一下Tomcat自带的一个web应用的目录结构 ...

  5. JQuery的extend

    jQuery.extend 函数详解 JQuery的extend扩展方法:      Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解 ...

  6. 人生苦短之Python多线程

    #encoding=utf-8 import threading import time ''' python多线程并不是真正意义上的多线程,通常我们所说的多线程是多个线程同时执行某功能,而在pyth ...

  7. @SuppressWarnings(&quot;serial&quot;)注解

    @SuppressWarnings J2SE 提供的一个批注或者注解.该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默,即忽略这些警告信息. 在平常的编码过程中,我们经常 ...

  8. 精选Java面试题(二)

    Java中的方法覆盖重写(Overriding)和方法重载(Overloading)是什么意思? Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况.与此相对,方法 ...

  9. 微信小程序自定义下导航页面切换效果的合理写法

    上图::: 导航模板内容页面的定义: <template name="naviBot">   <view class='navwrap t_cen font_26 ...

  10. HDU1852 Beijing 2008(快速幂+特殊公式)

    As we all know, the next Olympic Games will be held in Beijing in 2008. So the year 2008 seems a lit ...