jQuery Validate (登录页面相关验证)
$(function() {
var submit = false;
var superHtml = [];
/**
* 匹配企业帐号,以字母开头,长度在6-20之间,只能包含字符、数字和下划线。
*/
// jQuery.validator.addMethod("userNameIsFormart", function(value, element) {
// return this.optional(element) || /^[a-zA-Z]\w{5,19}$/.test(value);
// }, "企业名称格式:以字母开头,长度在6-20字符之间,只能包含字符、数字和下划线。");
/**
* 验证企业名称是否存在;
*/
// jQuery.validator.addMethod("userNameIsExist", function(value, element) {
// return action.checkUserName();
// }, "该企业名称不存在。");
/**
* 匹配密码,长度在6-20之间。
*/
// jQuery.validator.addMethod("pwdIsFormart", function(value, element) {
// return this.optional(element) || /^.{6,20}$/.test(value);
// }, "企业密码格式:长度在6-20字符之间");
/**
* 验证的调用方法 if(!validator.valid()){ return false; } 验证重新启动 validator.reset();
*/
var validator = {
validator : null,
valid : function($this) {
// 如果验证通过,设置提示信息消失
if(this.validator.element($this)){
$this.parentNode.children[1].remove();
}
return this.validator.element($this);
},
validForm : function() {
return this.validator.form();
},
reset : function() {
this.validator.resetForm();
},
init : function() {
this.validator = $('#frm_login').validate({
// ignore: [],//设置验证隐藏表单域
rules : {
'userName' : {
required : true,
// userNameIsFormart : true,
// userNameIsExist : true
},
'password' : {
required : true,
// pwdIsFormart : true
},
},
/* 设置错误信息 */
messages : {
'userName' : {
required : "请输入企业名称。",
userNameIsFormart : "用户名或者密码错误。"
// userNameIsExist : "该企业名称不存在。"
},
'password' : {
required : "请输入企业密码。",
pwdIsFormart : "用户名或者密码错误。"
}
},
onkeyup : false, // disable key up
onfocusout : false, // disable focus out
// showErrors : function(errorMap, errorList) {
// if (errorList.length) {
// alert(errorList[0].message);
// }
// }
errorPlacement : function(error, element){
if(($(element).val() == "") || ( element.closest('div').find('span').length > 0 ) ){
element.closest('div').find('span').remove();
}
element.closest('div').append('<span style="color: red">' + error.text() + '</span>');
}
});
}
};
validator.init();
var action = {
/**
* 验证该用户名是否已被使用
*/
checkUserName : function() {
var url = contentPath + "/sysUser/testSysUserExist";
var param = {};
param.userName = $('#userName').val();
param.type = $('#type').val();
var valState = true;
$.ajax({
url : url,// 查询方法的url
data : param, // params
type : "post",
dataType : "json",
async : false,
success : function(data) {
if (data.data.exist) {
valState = true;
} else {
valState = false;
}
}
});
return valState;
}
};
var bind = {
bind_event : function() {
//
$('#btn_do_login').on('click', function(e) {
e.preventDefault();
if (!validator.validForm()) {
return false;
}
if (submit) {
return;
}
submit = true;
$(this).attr('disabled', true);
//
var url = contentPath + "/doLogin";
var param = {};
param.username = $("#userName").val(); // 企业账号
param.password = $("#password").val(); // 企业密码
param.type = $("#type").val(); // 用户类型
$.ajax({
url : url,
data : param,
type : 'POST',
dataType : 'json',
success : function(data) {
submit = false;
$('#btn_do_login').attr('disabled', false);
if (data.status === "success") {
window.location.href = contentPath + "/";
} else {
// alert(data.msg);
$('#password').closest('div').append('<span style="color: red">' + data.msg + '</span>');
}
},
error : function() {
window.location.href = contentPath + "/error";
}
});
});
/**
* 企业名称获得焦点,将提示消息清空
*/
$('#userName').on('focus', function() {
$('#userName').closest('div').find('span').remove();
});
/**
* 企业密码获得焦点,将提示消息清空
*/
$('#password').on('focus', function() {
$('#password').closest('div').find('span').remove();
});
/**
* 企业账号失去焦点事件
*/
// $('#userName').on('blur', function() {
// validator.valid(this);
// });
/**
* 企业密码失去焦点事件
*/
// $('#password').on('blur', function() {
// validator.valid(this);
// });
}
};
bind.bind_event();
});
jQuery Validate (登录页面相关验证)的更多相关文章
- jquery.validate.js表单验证
一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...
- 【转】jquery.validate.js表单验证
一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...
- [转]jquery.validate.js表单验证
原文地址:https://www.cnblogs.com/si-shaohua/p/3780321.html 一.用前必备官方网站:http://bassistance.de/jquery-plugi ...
- Jquery.validate.js表单验证插件的使用
作为一个网站web开发人员,以前居然不知道还有表单验证这样好呀的插件,还在一行行写表单验证,真是后悔没能早点知道他们的存在. 最近公司不忙,自己学习一些东西的时候,发现了validation的一个实例 ...
- 基于Jquery Validate 的表单验证
基于Jquery Validate 的表单验证 jquery.validate.js是jquery下的一个验证插件,运用此插件我们可以很便捷的对表单元素进行格式验证. 在讲述基于Jquery Vali ...
- 360浏览器下jquery.validate.unobtrusive的日期验证问题
今天在招聘频道(job.cnblogs.com)遭遇这样一个问题——在360浏览器下,在一个表单验证中,虽然输入了有效的日期,却总是提示日期格式错误,见下图: 而在Chrome/Safari/Fire ...
- jquery.validate.js使用id验证控件
jquery.validate.js默认的是元素的name. 例如:<input name="username" id="username" size=& ...
- 异步提交form的时候利用jQuery validate实现表单验证
异步提交form的时候利用jQuery validate实现表单验证相信很多人都用过jquery validate插件,非常好用,并且可以通过下面的语句来自定义验证规则 // 电话号码验证 ...
- 基于Bootstrap+jQuery.validate Form表单验证实践
基于Bootstrap jQuery.validate Form表单验证实践 项目结构 : github 上源码地址:https://github.com/starzou/front-end- ...
随机推荐
- BZOJ2004:[HNOI2010]Bus 公交线路(状压DP,矩阵乘法)
Description 小Z所在的城市有N个公交车站,排列在一条长(N-1)km的直线上,从左到右依次编号为1到N,相邻公交车站间的距离均为1km. 作为公交车线路的规划者,小Z调查了市民的需求,决定 ...
- 【[SDOI2017]序列计数】
感觉自己的复杂度感人 大概是\(O(p*\pi(m)+p^3logn)\) 还是能过去的 我们看到这么大的数据范围还是应该先想一想暴力怎么写 显然我们可以直接暴力\(dp\) 设\(dp[i][j]\ ...
- P1346 电车
题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能).在每个路口,都有一个开关决定 ...
- concatenate函数
numpy.concatenate((a1, a2, ...), axis=0) Join a sequence of arrays along an existing axis.(按轴axis连接a ...
- urlparse 用法
ifrom urllib2 import urlparse ‘’ captcha_id = urlparse.parse_qs(urlparse.urlparse(link).query, True) ...
- Dubbo实践(十五)消费者引用服务
Refer取得invoker的过程 <!-- 指定了哪种的注册中心,是基于zookeeper协议的,指定了注册中心的地址以及端口号 --> <dubbo:registry proto ...
- Oracle 的PL/SQL语言使用
--PL/SQL语言(procedure language 过程化语言) --1.声明类型 declare k number; m ; --Character String buffer too sm ...
- 多种移动平均计算总结(MA,EMA,SMA,DMA,TMA,WMA)
多种移动平均计算总结 股票期货里面经常会遇到这些公式,通达信,同花顺,文华,基本都有.作为一个程序员觉得网上比较的思路不清晰,在此做个总结,一目了然. 一.函数简介 MA(x,n)-移动平均,是最简单 ...
- web前端开发插件(无需重复造轮子)
1.artdialog 对话框组件 简介:是一个基于JavaScript编写的对话框组件,他拥有精致的界面与友好的接口 文档链接:http://www.daimajiayuan.com/downloa ...
- #leetcode刷题之路31-下一个排列
实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列.如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列).必须原地修改,只允许使用额外常数空间. 以下 ...