菜鸟拙见,望请纠正

一:效果展示:以下是两个注册表单验证,左边使用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插件与实现的更多相关文章

  1. jquery.validate插件在booststarp中的运用

    现在在网络上已经可以找到很多基于bootstarp的表单认证,但是验证的都不全面的,下载后,我们还要理解作者的思路然后进行修改添加,这种修改方式往往适合学习,时间很多的时候.但是我们很多时候是没有时间 ...

  2. jQuery Validate 插件

    >>>>>>>>>>>>>>>>>>>>>>>>> ...

  3. jquery validate 插件使用小结

    项目中整合了jquery validate插件,仿照别人的使用写了我的表单验证,结果不起作用.然后就各种找原因. 在网上下了jquery validate插件的完整包,看了看里边的例子,跟我的使用貌似 ...

  4. 【jQuery】(6)---jQuery validate插件

    jQuery  validate插件 一.导入js库                                      先导入jQuery库,然后导入Validate插件,如果是中文提示还需要 ...

  5. jQuery Validate 插件为表单提供了强大的验证功能

    之前项目开发中,表单校验用的jQuery Validate 插件,这个插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的 ...

  6. 使用JQuery.Validate插件来校验页面表单有效性

    使用JQuery.Validate插件来校验页面表单有效性​1. [代码] 常见的注册表单元素 <form action="#" method="post" ...

  7. jQuery Validate插件实现表单强大的验证功能

    转自:http://www.jb51.net/article/76595.htm jQuery Validate插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自 ...

  8. 前端验证,jquery.validate插件

    jQuery Validate 简介: jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用 ...

  9. 表单验证神器——jquery.validate插件

    jquery.validate.js插件应用举例,ajax方式提交数据. html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...

随机推荐

  1. php 截取字符串指定长度

    ---恢复内容开始--- 一.直接取整,舍弃小数,保留整数:intval(): intval(9.21); /*结果是9*/ intval(9.89); /*结果是9*/ intval(string) ...

  2. JavaScript写九九乘法表

    <script language=javascript> for(i=1;i<=9;i++){ for(j=1;j<=9;j++){ document.write (i+&qu ...

  3. 润乾填报页面导入excel后增加js动作

     当页面从excel中导入数据之后,自动加入js的检查功能,下面是如何在导入excel后直接引入js的功能实例: var _orgImportExcel = report1_importExcel ...

  4. Android控件显示和隐藏

    Android控件都有visibility属性,该属性有三个可能值:visible.invisible.gone.可以通过预设或是Java程序控制这些控件的显示或隐藏. 一.在XML配置文件设置 可见 ...

  5. 外业数据采集平台(GPS+Android Studio+Arcgis for android 100.2.1)

    外业数据采集平台 1. 综述 在室外,通过平板或者手机接收GPS坐标,实时绘制点.线.面数据,以便为后续进行海域监测.土地确权.地图绘图提供有效数据和依据. 2. 技术路线 Android studi ...

  6. 配置 tsconfig.json

    作用 指导编译器如何生成 JS 文件 参数 target: 编译目标平台(es3, es5, es2015) module: 组织代码方式(commonjs, AMD) sourceMap:编译文件对 ...

  7. unity3d中的自定义模型的顶点法线和建模软件中的术语“软硬边”和立方体

    在unity3d中我是想用Mesh生成一个正方体,直到遇到了法线的问题. 我是想显示如下图所示的正方体,却发现法线设置上的问题. 这里我先使用了8个顶点 按照每个顶点一个法线的结果,只能是这样:(也就 ...

  8. 测试、集成等领域最好的Java工具

    无论你是刚入门,还是进行了一段时间的开发,使用合适的工具编程都会让你事半功倍,它能够让你更快的编写代码,能够快速及时的为你识别出Bug,能够让你的代码质量更上一层楼. 如果你选择的编程语言是Java, ...

  9. HBase Scan流程分析

    HBase Scan流程分析 HBase的读流程目前看来比较复杂,主要由于: HBase的表数据分为多个层次,HRegion->HStore->[HFile,HFile,...,MemSt ...

  10. 为什么mysql要做主从复制?

    为什么MySQL要做主从复制(读写分离)? 通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低. 为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻主 ...