JQuery 学习—JQuery Validation表单验证范例[通俗易懂]

JQuery Validation表单验证范例

大家好,又见面了,我是全栈君。

jQuery Validato表单验证插件,它是基于jQuery类库,实现了js脚本于页面html代码的分离。你可以划分多个校验组,每个组的校验都是互不影响。对一个表单对象,你只需要写一行代码就可以轻松实现无数种(理论上)脚本控制。

1:测试的HTML代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
"http://www.w3.org/TR/html4/loose.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=gbk" />  
 <title>jQuery验证</title>  
 <script src="lib/jquery/jquery-1.3.2.min.js" ></script>  
 <script type="text/javascript" src="lib/jquery/jquery.validate.js" mce_src="lib/jquery/jquery.validate.js"></script>  
 <script type="text/javascript" src="lib/jquery/messages_cn.js"></script>  
 <script type="text/javascript" src="lib/jquery/formValidatorClass.js"></script>  
 <style type="text/css">  
  
 * {  
 font-family: Verdana;  
 font-size: 96%;  
 }  
 label {  
 width: 10em;  
 float: left;  
 }  
 label.error {  
 float: none;  
 color: red;  
 padding-left: .5em;  
 vertical-align: top;  
 }  
 p {  
 clear: both;  
 }  
 .submit {  
 margin-left: 12em;  
 }  
 em {  
 font-weight: bold;  
 padding-right: 1em;  
 vertical-align: top;  
 }  
</style>  
</head>  
<body>  
<form class="submitForm" id="submitForm" method="get" action="">  
<fieldset>  
<legend>表单验证</legend>  
<p>  
<label for="username">用户名</label>  
<em>*</em><input id="userName" name="username" size="25" />  
</p>  
<p>  
<label for="email">E-Mail</label>  
<em>*</em><input id="email" name="email" size="25" />  
</p>  
<p>  
<label for="phone">联系电话</label>  
<em>*</em><input id="phone" name="phone" size="25" value="" />  
</p>  
<p>  
<label for="address">地址</label>  
<em>*</em><input id="address" name="address" size="22">  
</p>  
<input class="submit" type="submit" value="提交"/>  
</p>  
</fieldset>  
</form>  
</body>  
</html>  

2:Jquery 代码

/** 
 * @author aflyun 
 */  
$(document).ready(function(){  
  
/* 设置默认属性 */  
$.validator.setDefaults({  
submitHandler: function(form) {  
form.submit();  
}  
});  
  
// 字符验证   
jQuery.validator.addMethod("stringCheck", function(value, element) {  
return this.optional(element) || /^[u0391-uFFE5w]+$/.test(value);         
}, "只能包括中文字、英文字母、数字和下划线");  
  
// 中文字两个字节   
jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {  
 var length = value.length;  
 for(var i = 0; i < value.length; i++){  
 if(value.charCodeAt(i) > 127){  
 length++;  
 }  
 }  
 return this.optional(element) || ( length >= param[0] && length <= param[1] );  
}, "请确保输入的值在3-15个字节之间(一个中文字算2个字节)");  
  
// 身份证号码验证   
jQuery.validator.addMethod("isIdCardNo", function(value, element) {  
 return this.optional(element) || isIdCardNo(value);  
}, "请正确输入您的身份证号码");  
  
// 手机号码验证   
jQuery.validator.addMethod("isMobile", function(value, element) {  
 var length = value.length;  
 var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+d{8})$/;  
 return this.optional(element) || (length == 11 && mobile.test(value));  
}, "请正确填写您的手机号码");  
  
// 电话号码验证   
jQuery.validator.addMethod("isTel", function(value, element) {  
 var tel = /^d{3,4}-?d{7,9}$/; //电话号码格式010-12345678   
 return this.optional(element) || (tel.test(value));  
}, "请正确填写您的电话号码");  
  
// 联系电话(手机/电话皆可)验证   
jQuery.validator.addMethod("isPhone", function(value,element) {  
 var length = value.length;  
 var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+d{8})$/;  
 var tel = /^d{3,4}-?d{7,9}$/;  
 return this.optional(element) || (tel.test(value) || mobile.test(value));  
  
}, "请正确填写您的联系电话");  
  
// 邮政编码验证   
jQuery.validator.addMethod("isZipCode", function(value, element) {  
 var tel = /^[0-9]{6}$/;  
 return this.optional(element) || (tel.test(value));  
}, "请正确填写您的邮政编码");  
  
//开始验证   
$('#submitForm').validate({  
 /* 设置验证规则 */  
 rules: {  
 username: {  
 required:true,  
 stringCheck:true,  
 byteRangeLength:[3,15]  
 },  
 email:{  
 required:true,  
 email:true  
 },  
 phone:{  
 required:true,  
 isPhone:true  
 },  
 address:{  
 required:true,  
 stringCheck:true,  
 byteRangeLength:[3,100]  
 }  
 },  
  
 /* 设置错误信息 */  
 messages: {  
 username: {  
 required: "请填写用户名",  
 stringCheck: "用户名只能包括中文字、英文字母、数字和下划线",  
 byteRangeLength: "用户名必须在3-15个字符之间(一个中文字算2个字符)"  
 },  
 email:{  
 required: "请输入一个Email地址",  
 email: "请输入一个有效的Email地址"  
 },  
 phone:{  
 required: "请输入您的联系电话",  
 isPhone: "请输入一个有效的联系电话"  
 },  
 address:{  
 required: "请输入您的联系地址",  
 stringCheck: "请正确输入您的联系地址",  
 byteRangeLength: "请详实您的联系地址以便于我们联系您"  
 }  
 },  
  
 /* 设置验证触发事件 */  
 focusInvalid: false,  
 onkeyup: false,  
  
 /* 设置错误信息提示DOM */  
 errorPlacement: function(error, element) {  
 error.appendTo( element.parent());  
 },  
  
});  
  
});  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121264.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tfw格式图解[通俗易懂]

    tfw格式图解[通俗易懂]TFW格式,是关于TIFF影像坐标信息的文本文件。其它影像格式的坐标信息描述文件与其格式是一样的,后缀名可能不同。(bmp-bpw/png-pgw/jpg-jpw)话不多说,直接看图。上图中的UV坐标,实际上只的是图像的横向坐标和纵向坐标 。即图像的行和列坐标。 对于图上任意一个像素点(col,row)这个坐标,换算其地理坐标就十分简单。GeoX=1000.000+…

    2025年7月31日
    4
  • vim怎么高亮显示_vim配置教程

    vim怎么高亮显示_vim配置教程经常使用SecureCRT在linux下修改一些配置文件,使用vi打开总是一个颜色,找起来比较头大。因为vi不支持高亮,所以需要使用vim。安装vim:yuminstall-yvim(ubuntu使用apt-get)全局(所有用户)vim配置文件路径:/etc/vimrc当前用户vim配置文件路径:~/.vimrc如果存在该文件,则备份一下,以免以后找不到。在vimrc文件中输入:synta…

    2022年9月29日
    3
  • 为什么pycharm找不到模块_pycharm project interpreter

    为什么pycharm找不到模块_pycharm project interpreter如果要连接服务器的话,是需要在deployment里进行操作的,但是有时候不管怎么找,在Pycharm中都找不到。(PS:我就遇到了这样的问题)其实原因很简单,你装的Pycharm可能是社区版,不具有远程连接服务器的功能,只需要下载一个专业版就行。用学生账号免费使用专业版的方法可参照这个:https://blog.csdn.net/weixin_45459911/article/details…

    2022年8月26日
    9
  • Lucene中AttributeSource作为TokenStream父类的原因

    Lucene中AttributeSource作为TokenStream父类的原因lucene3.0lucene中有如下的类层次:org.apache.lucene.util.AttributeSourceorg.apache.lucene.analysis.TokenStream(implementsjava.io.Closeable)org.apache.lucene.analysis.NumericTokenStreamorg.apache…

    2022年7月22日
    12
  • 浙江新增python课程_浙江教育新规重磅来袭:今年9月起,八年级新增Python编程课程…

    浙江新增python课程_浙江教育新规重磅来袭:今年9月起,八年级新增Python编程课程…浙江新学期将会对信息课程做调,三到九年级信息技术课将同步替换新器材。其中最大的变化是,八年级将新增Python课程内容。新高一信息技术编程语言由VB替换为Python,大数据、人工智能、程序设计与算法按照教材规划五六年级开始接触。有网友疑惑:“这算不算是超前教育了呢?”其实不然。早在2012年,日本就在中小学中普及编程教育科目;2014年,英国教育部把编程列入了学校的必修课程,让5岁以上的孩子都必…

    2022年5月17日
    56
  • Landsat-8 介绍[通俗易懂]

    Landsat-8 介绍[通俗易懂]Landsat-8于2013年2月11日发射升空,目前仍在运行。它始于Landsat数据连续性任务。现在,我们将其简称为Landsat-8。Landsat-8在与太阳同步的近极轨道上绕地球旋转,高度为705公里(438英里),倾斜角为98.2度,每99分钟完成一次地球轨道。卫星的重复周期为16天,赤道穿越时间为:上午10:00+/-15分钟。Landsat-8每天收集550个场景。因此,到2020年8月,它将收集到总计150万个场景。这颗主力卫星仍然是面向公众的开源土地信息的主要内容。…

    2022年7月23日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号