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 Ajax 异步登录,并验证用户输入信息(maven)
使用 jQuery Ajax 异步登录,并验证用户输入信息(maven) 本篇内容: (1)上一篇是使用同步的请求实现登录,并由 Servlet 决定登陆后下一步做哪些事情,本篇使用 jQuery A ...
- ASP.NET MVC验证 - jQuery异步验证
本文主要体验通过jQuery异步验证. 在很多的教材和案例中,MVC验证都是通过提交表单进行的.通过提交表单,可以很容易获得验证出错信息.因为,无论是客户端验证还是服务端验证,总能找到与Model属性 ...
- MVC验证11-对复杂类型使用jQuery异步验证
原文:MVC验证11-对复杂类型使用jQuery异步验证 本篇体验使用"jQuery结合Html.BeginForm()"对复杂类型属性进行异步验证.与本篇相关的"兄弟篇 ...
- ASP.NET MVC异步验证是如何工作的03,jquery.validate.unobtrusive.js是如何工作的
在上一篇"ASP.NET MVC异步验证是如何工作的02,异步验证表单元素的创建"中了解了ASP.NET异步验证是如何创建表单元素的,本篇体验jquery.validate.uno ...
- ASP.NET MVC异步验证是如何工作的01,jQuery的验证方式、错误信息提示、validate方法的背后
ASP.NET MVC借助jQuery的验证机制,提供了一套从客户端到服务端异步验证的解决方案,通常情况下,用起来相当方便.但面对一些相对特殊的情况,可能会遇到验证失效的场景,比如在使用ajax动态异 ...
- ssm框架整合+Ajax异步验证
SSM框架是目前企业比较常用的框架之一,它的灵活性.安全性相对于SSH有一定的优势.说到这,谈谈SSM和SSH的不同点,这也是企业常考初级程序员的面试题之一.说到这两套框架的不同,主要是持久层框架Hi ...
- formValidator输入验证、异步验证实例 + licenseImage验证码插件实例应用
实例技术:springmvc 实现功能:完整用户登录流程.输入信息规则校验.验证码异步校验. 功能清单: 1.springmvc控制器处理get请求(/member/login.html),进行静态页 ...
- validate+jquery+ajax表单验证
1.案例 1.1 Html form表单内容 <form class="cForm" id="cForm" method="post" ...
- ASP.NET MVC Jquery Validate 表单验证的多种方式
在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体验也会得到很大的提升.在开发过程中我们可以不借助 JS 库,自己去手写 JS ...
随机推荐
- CentOS Linux搭建独立SVN Server全套流程(转)
环境为centos6.3 1.首先 看看机器上安装了svn了没有 rpm -qa |grep svn 2.如果没有安装 执行 yum -y install subversion 3.安装好了之后 新建 ...
- hdu 2842(矩阵高速幂+递推)
题意:一个中国环的游戏,规则是一个木棒上有n个环.第一个环是能够任意放上或拆下的,剩下的环x假设想放上或拆下必须前一个环x-1是放上的且前x-2个环所有是拆下的,问n个环最少多少次操作能够所有拆掉. ...
- UVA1422-Processor(二分法+优先队列)
option=com_onlinejudge&Itemid=8&category=512&page=show_problem&problem=4168"> ...
- gdb调试段错误及使用
在编程调试中,经常出现段错误,此时可用gdb调试.具体方法为注册段错误信号处理函数,在处理函数中启动gdb.具体代码如下: void segv_handler(int no) { ]; ]; FILE ...
- 03 svn 权限与用户管理
一:权限管理 (1)svn仓库各个作用 svnserve.conf [svn仓库的配置文件] password [svn仓库账号和密码配置文件] authz [svn仓库的访问权限] (2)访问权限 ...
- 【NOIP 模拟赛】 道路
题目描述在二维坐标平面里有 N 个整数点,信息班某一巨佬要访问这 N 个点.刚开始巨佬在点(0,0)处. 每一步,巨佬可以走到上.下.左.右四个点.即假设巨佬当前所在点的坐标是(x,y),那么它下一步 ...
- 20170319 ABAP 生成XML文件
方法一:ABAP 使用method方式操作XML 转自:http://www.cnblogs.com/jiangzhengjun/p/4265595.html 方法二:STRANS 转换工具;使用st ...
- 常用的Css命名方式
常用的Css命名方式: CSS命名规范: 1.文件命名规范 全局样式:global.css: 框架布局:layout.css: 字体样式:font.css: 链接样式:link.css: 打印样式:p ...
- 关于lock锁
在 jdk1.5 之后,并发包中新增了 Lock 接口(以及相关实现类)用来实现锁功能,Lock 接口提供了与 synchronized 关键字类似的同步功能,但需要在使用时手动获取锁和释放锁. lo ...
- VS2010关于调用ffmpeg借口出错
win7 下开发视频服务器,用到ffmpeg,debug版本运行正常,切换到release时,出现"0x00905a4d 处未处理的异常: 0xC0000005: 读取位置 0x00905a ...