JQuery Validate插件与实现
菜鸟拙见,望请纠正
一:效果展示:以下是两个注册表单验证,左边使用Jquery validate插件实现,右边是自己用JQuery实现,效果差不多,但个人推荐用插件,毕竟前人栽了树而且长大了后人当然好乘凉嘛!


二:效果实现
首先是插件效果:插件用起来很简单,引入插件后,还是再新建js文件,在js文件中按实际要求填写就好,下边是源码,
$(document).ready(function(){
validForm();
});
function validForm(){
$(".login-from").validate({
rules:{
username:{
required:true,
minlength:6,
maxlength:20,
},
password:{
required:true,
isPassword:true,
minlength:6,
maxlength:20,
},
verification:{
required:true,
equalTo:"ITEXCHANGE",
},
},
messages:{
username: {
required: "*必填項",
minlength: "最少不能少于六个字符",
maxlength: "最多不能超过20个字符",
},
password:{
required:"*必填項",
minlength: "最少不能少于六个字符",
maxlength: "最多不能超过20个字符",
isPassword:"密码需由6-20个字母、数字、下划线组成",
},
verification:{
required:"*必填项",
equalTo:"验证码错误",
},
},
});
$(".register-from").validate({
rules:{
username:{
required:true,
minlength:6,
maxlength:20,
},
password:{
required:true,
isPassword:true,
minlength:6,
maxlength:20,
},
confirm:{
required:true,
equalTo:".password2",
},
verification:{
required:true,
equalTo:"ITEXCHANGE",
},
},
messages:{
username: {
required: "*必填項",
minlength: "最少不能少于六个字符",
maxlength: "最多不能超过20个字符",
},
password:{
required:"*必填項",
minlength: "最少不能少于六个字符",
maxlength: "最多不能超过20个字符",
isPassword:"密码需由6-20个字母、数字、下划线组成",
},
confirm:{
required:"*必填項",
equalTo:"与上次输入不一致",
},
verification:{
required:"*必填项",
equalTo:"验证码错误",
},
},
});
jQuery.validator.addMethod("isPassword", function(value, element) {
var tel = /^(\w){6,20}$/;
return this.optional(element) || (tel.test(value));
});
}
填写内容英语一看就懂,不仅如此,该插件还支持自定义验证方法,修改样式。但注意的是rules是依靠input的name属性来识别input的
然后还有就是异步验证数据库里该比如用户名是否已经存在,这个可能经常见
$(function() {
//表单验证JS
$("#form1").validate({
//出错时添加的标签
errorElement: "span",
rules: {
txtUserName: {
required: true,
minlength: 3,
maxlength: 16,
remote: {
type: "post",//请求方式
url: "/tools/ValidateUserName.ashx",//发送请求的后端url地址
data: {
username: function() {
return $("#txtUserName").val();//id名为“txtUserName”
}
},
dataType: "html",//发送的数据类型
dataFilter: function(data, type) {//返回结果
if (data == "true")
return true;
else
return false;
}
}
}
},
success: function(label) {
//正确时的样式
label.text(" ").addClass("success");
},
messages: {
txtUserName: {
required: "请输入用户名,3-16个字符(字母、数字、下划线),注册后不能更改",
minlength: "用户名长度不能小于3个字符",
maxlength: "用户名长度不能大于16个字符",
remote: "用户名不可用"
}
}
});
});
然后接下来就是自代码实现
$(document).ready(function(){
validForm();
});
function validForm(){
$("form :input").blur(function(){
var $parent = $(this).parent();
//删除之前的错误提醒信息
$parent.find(".msg").remove();
//验证“姓名”
if($(this).is("#username")){
if($.trim(this.value) == "" || $.trim(this.value).length < 6){
var errorMsg = " 请输入至少6位的姓名!";
$parent.append("<span class='msg onError'>" + errorMsg + "</span>");
}
else{
var okMsg=" 格式正确";
$parent.append("<span class='msg onSuccess'>" + okMsg + "</span>");
}
}
//验证密码
if($(this).is("#password")){
if($.trim(this.value) == ""||!isPasswd($.trim(this.value))){
var errorMsg = "密码需由6-20个字母、数字、下划线组成";
$parent.append("<span class='msg onError'>" + errorMsg + "</span>");
}
else{
var okMsg=" 格式正确";
$parent.append("<span class='msg onSuccess'>" + okMsg + "</span>");
}
}
//密码再次确定
if($(this).is("#confirm")){
var prepassword = $(".password2").val();
if($.trim(this.value) != prepassword||$.trim(this.value)=="") {
var errorMsg = "请输入与上次一致的密码";
$parent.append("<span class='msg onError'>" + errorMsg + "</span>");
} else {
var okMsg = " 输入正确";
$parent.append("<span class='msg onSuccess'>" + okMsg + "</span>");
}
}
//验证码确定
if($(this).is("#verification")){
if($.trim(this.value) != "ITEXCHANGE") {
var errorMsg = "请输入正确的验证码";
$parent.append("<span class='msg onError'>" + errorMsg + "</span>");
} else {
var okMsg = " 输入正确";
$parent.append("<span class='msg onSuccess'>" + okMsg + "</span>");
}
}
}).keyup(function(){
//triggerHandler 防止事件执行完后,浏览器自动为标签获得焦点
$(this).triggerHandler("blur");
});
.focus(function(){
$(this).triggerHandler("blur");
});
}
//校验密码:只能输入6-20个字母、数字、下划线
function isPasswd(s){
var patrn=/^(\w){6,20}$/;
if (!patrn.exec(s)) return false
return true
}
自己写的内容可能自己理解比较好,但是对比之后就会发现,代码比较多,而且考虑的情况比较多,显得比较繁杂
三:关于插件与交互
JQuery Validate插件与实现的更多相关文章
- jquery.validate插件在booststarp中的运用
现在在网络上已经可以找到很多基于bootstarp的表单认证,但是验证的都不全面的,下载后,我们还要理解作者的思路然后进行修改添加,这种修改方式往往适合学习,时间很多的时候.但是我们很多时候是没有时间 ...
- jQuery Validate 插件
>>>>>>>>>>>>>>>>>>>>>>>>> ...
- jquery validate 插件使用小结
项目中整合了jquery validate插件,仿照别人的使用写了我的表单验证,结果不起作用.然后就各种找原因. 在网上下了jquery validate插件的完整包,看了看里边的例子,跟我的使用貌似 ...
- 【jQuery】(6)---jQuery validate插件
jQuery validate插件 一.导入js库 先导入jQuery库,然后导入Validate插件,如果是中文提示还需要 ...
- jQuery Validate 插件为表单提供了强大的验证功能
之前项目开发中,表单校验用的jQuery Validate 插件,这个插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的 ...
- 使用JQuery.Validate插件来校验页面表单有效性
使用JQuery.Validate插件来校验页面表单有效性1. [代码] 常见的注册表单元素 <form action="#" method="post" ...
- jQuery Validate插件实现表单强大的验证功能
转自:http://www.jb51.net/article/76595.htm jQuery Validate插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自 ...
- 前端验证,jquery.validate插件
jQuery Validate 简介: jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用 ...
- 表单验证神器——jquery.validate插件
jquery.validate.js插件应用举例,ajax方式提交数据. html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...
随机推荐
- jquery 给iframe里的元素添加事件
$("#iframeId").on("load", function(event){//判断 iframe是否加载完成 这一步很重要 $("#divI ...
- ArcGIS10.3+Oracle12C+ArcGIS Server10.3安装布署(之三)
1.将Oracle的客户端切换到64位 (1)将C:\下的instantclient_12_1目录重命名为instantclient_12_1X86 (2)从Oracle的官方网站下载 insta ...
- WPF 手机验证码 发送按钮倒计时 代码
private async void SendButton_Click(object sender, RoutedEventArgs e) { var button = sender as Butto ...
- 手动配置wnmp环境
wamp 是什么? windows,nginx,mysql,php(当然也可以是PYTHON等) 只所以使用nginx,是因为我等下要配置ZendGuardLoader ZendGuardLoader ...
- 1.windows下Redis安装
参考文档:https://www.cnblogs.com/Leo_wl/p/6392196.html?utm_source=itdadao&utm_medium=referral Redis数 ...
- [翻译] USING GIT IN XCODE [6] 在XCODE中使用GIT[6]
USING GIT IN XCODE KEEPING IN SYNC WITH REMOTE REPOSITORIES As you make changes in your local workin ...
- 排序算法(2) 堆排序 C++实现
堆 1 数组对象 2 可以视为一棵完全二叉树 3 一个堆可以被看作一棵二叉树和一个数组,如下图所示: 4 下标计算(通常使用内联函数或者宏来定义下标操作): 已知某个结点的下标为i 其父节点下标:i/ ...
- Windows 7 添加快速启动栏
1.右击任务栏空白处,选择 “工具栏” ,单击 “新建工具栏” 2.输入 以下路径: %userprofile%\AppData\Roaming\Microsoft\Internet Explorer ...
- 铁乐学Python_day08_文件操作
一.[基本的文件操作] 参数: 1.文件路径: 2.编码方式: 3.执行动作:(打开方式)只读,只写,追加,读写,写读! #1. 打开文件,得到文件句柄并赋值给一个变量 f = open('E:/Py ...
- 【教程】【FLEX】#004 反射机制
总结: 目前用到反射的主要有两个方法 1. getDefinitionByName //根据类名,返回对象(反射实例化对象) 2. describeType ...