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


相关推荐

  • css 的 opacity 属性

    css 的 opacity 属性opacity用于指定元素透明度,支持0~1之间的小数.默认值1-完全不透明,0-完全透明<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><title>opacity</title><style>/*opacity默认1,完全不透明0完全透明

    2022年5月26日
    42
  • PV操作——生产者和消费者

    PV操作——生产者和消费者

    2022年1月15日
    61
  • drone无人机应用_drone无人机教程视频

    drone无人机应用_drone无人机教程视频目录文章目录目录摘要1.增加姿态信息界面2.在activity中显示更新姿态数据摘要本节主要记录打造自己的HelloDrone无人机APP过程《2》—如何获取并且显示姿态信息。1.增加姿态信息界面<?xmlversion=”1.0″encoding=”utf-8″?><ScrollViewxmlns:android=”http://schemas.android.com/apk/res/android”xmlns:tools=”http://schemas.

    2022年8月15日
    6
  • ospf数据库同步过程_OSPF的概念

    ospf数据库同步过程_OSPF的概念OSPF协议之链路数据库同步OSPF如何实现链路状态数据库的同步-链路信息主要包括:1、链路的类型;2、接口IP地址及掩码;3、链路上所连接的邻居路由器;4、链路的带宽(开销)。区别于RIP路由器之间交互的路由信息,OSPF路由器同步的是最原始的链路状态信息,而且对于邻居路由器发来的链路状态信息,仅作转发。最终所有路由器都将拥有一份相同且完整的原始链路状态信息。为…

    2022年10月15日
    0
  • -Bash: Unzip: Command Not Found解决方法 安装unzip

    -Bash: Unzip: Command Not Found解决方法 安装unzip

    2021年10月18日
    66
  • 简要说明continue命令和break命令的不同_continue的用法

    简要说明continue命令和break命令的不同_continue的用法break命令可以带一个参数,一个不带参数的break循环只能退出最内层的循环,而breakN可以退出N层循环。continue命令也可以带一个参数,一个不带参数的continue命令只去掉本次循环的剩余代码,而continueN将会把N层循环剩余的代码都去掉,但是循环的次数不变。#!/bin/shforiin”abcd”doech

    2022年9月13日
    0

发表回复

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

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