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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springboot实战第三章

    springboot实战第三章

    2021年5月15日
    120
  • Cacti插件详解之——Weathermap(1)

    Cacti插件详解之——Weathermap(1)

    2021年8月28日
    142
  • 看完了aspnetmvc nerdinner项目

    看完了aspnetmvc nerdinner项目这几天一直在看aspnetmvc-nerdinner这本书中的Nerdinner代码编写的全过程。其实觉得用最原始的办法:动手敲代码带给我们的好处比单纯的看然后Copy代码再运行要好的多,最起码加深了我们的记忆。前段时间看了ASP.NET网站上关于ASP.NETMVC编程的培训文章,觉得MVC挺强大的,然后就试着自己做了一个小项目,可是在做的过程中,很多东西确实见多人家怎么做,也知道大概…

    2022年9月29日
    3
  • Redis的持久化机制

    Redis的持久化机制

    2021年4月10日
    126
  • Scrivener for Mac如何自定义快捷键

    Scrivener for Mac如何自定义快捷键Scrivenerformac是目前苹果osx平台上最优秀的写作软件,拥有简单而又独特的操作界面,提供了标注、概述、收藏保存、全屏幕编辑、快照等各种写作辅助功能,可以对文章进行大致的勾勒或者重组,并且支持用户使用关键词跟踪主题,动态联合多种场景到单个文本,从而辅助作者完成从作品构思、搜集资料、组织结构、增删修改到排版输出的整个写作流程,能够适用于博主、作家、专栏作者使用。在ScrivenerforMac中分配或更改键盘快捷键可能存在某些菜单项,您发现自己使用了很多没有键盘快捷键的菜单项,或者您

    2022年5月25日
    34
  • C语言字符串分割

    C语言字符串分割在C语言中,内置的函数库中除了可以用strtok()来对字符串进行分割之外,还可以用sscannf()对字符串进行分割。sscanf()包含的头文件stdio.h原型intsscanf(constchar*str,constchar*format,…)实例:#include&lt;stdio.h&gt;intmain(){ charbuf[]="…

    2022年4月30日
    54

发表回复

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

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