Jquery Validate 表單驗證使用
阿新 • • 發佈:2019-04-25
left 分享圖片 導入 width field latest 基本結構 arc 輸入密碼
一、導入 js 庫
jquery-validation-1.14.0
鏈接:https://pan.baidu.com/s/1IoHW_HAsbK0NKt5TeNZ6Pg
提取碼:1s6x
<script src="../jquery-validation-1.14.0/lib/jquery.js"></script> <script src="../jquery-validation-1.14.0/dist/jquery.validate.min.js"></script> //中文提示包 <script src="../jquery-validation-1.14.0/dist/localization/messages_zh.min.js"></script>
1.1默認校驗規則
序號 | 規則 | 描述 |
---|---|---|
1 | required:true | 必須輸入的字段。 |
2 | remote:"check.php" | 使用 ajax 方法調用 check.php 驗證輸入值。 |
3 | email:true | 必須輸入正確格式的電子郵件。 |
4 | url:true | 必須輸入正確格式的網址。 |
5 | date:true | 必須輸入正確格式的日期。日期校驗 ie6 出錯,慎用。 |
6 | dateISO:true | 必須輸入正確格式的日期(ISO),例如:2009-06-23,1998/01/22。只驗證格式,不驗證有效性。 |
7 | number:true | 必須輸入合法的數字(負數,小數)。 |
8 | digits:true | 必須輸入整數。 |
9 | creditcard: | 必須輸入合法的信用卡號。 |
10 | equalTo:"#field" | 輸入值必須和 #field 相同。 |
11 | accept: | 輸入擁有合法後綴名的字符串(上傳文件的後綴)。 |
12 | maxlength:5 | 輸入長度最多是 5 的字符串(漢字算一個字符)。 |
13 | minlength:10 | 輸入長度最小是 10 的字符串(漢字算一個字符)。 |
14 | rangelength:[5,10] |
輸入長度必須介於 5 和 10 之間的字符串(漢字算一個字符)。 |
15 | range:[5,10] | 輸入值必須介於 5 和 10 之間。 |
16 | max:5 | 輸入值不能大於 5。 |
17 | min:10 | 輸入值不能小於 10。 |
1.2默認提示
messages: {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date ( ISO ).",
number: "Please enter a valid number.",
digits: "Please enter only digits.",
creditcard: "Please enter a valid credit card number.",
equalTo: "Please enter the same value again.",
maxlength: $.validator.format( "Please enter no more than {0} characters." ),
minlength: $.validator.format( "Please enter at least {0} characters." ),
rangelength: $.validator.format( "Please enter a value between {0} and {1} characters long." ),
range: $.validator.format( "Please enter a value between {0} and {1}." ),
max: $.validator.format( "Please enter a value less than or equal to {0}." ),
min: $.validator.format( "Please enter a value greater than or equal to {0}." )
}
二、使用方法
基本結構
<script> $.validator.setDefaults({ submitHandler: function() { //驗證正確後調用 alert("提交事件!"); } }); $().ready(function() { //界面加載後觸發 validateRule(); }); function validateRule() { //表單提交時觸發 $("#signupForm").validate({ rules: { username: "required" //規則 }, messages: { username: { required: "請輸入用戶名" //提示信息 } } }); } </script>
<form class="cmxform" id="signupForm" method="get" action=""> <!--表單代碼--> </form>
2.1常規使用
<script> $.validator.setDefaults({ submitHandler: function() { //驗證正確後觸發 alert("提交事件!"); } }); $().ready(function() { //界面加載後觸發 validateRule(); }); function validateRule() { //表單提交時觸發 $("#signupForm").validate({ rules: { firstname: "required", lastname: "required", username: { required: true, minlength: 2 }, password: { required: true, minlength: 5 }, confirm_password: { required: true, minlength: 5, equalTo: "#password" }, email: { required: true, email: true }, "topic[]": { required: "#newsletter:checked", minlength: 2 }, agree: "required" }, messages: { firstname: "請輸入您的名字", lastname: "請輸入您的姓氏", username: { required: "請輸入用戶名", minlength: "用戶名必需由兩個字母組成" }, password: { required: "請輸入密碼", minlength: "密碼長度不能小於 5 個字母" }, confirm_password: { required: "請輸入密碼", minlength: "密碼長度不能小於 5 個字母", equalTo: "兩次密碼輸入不一致" }, email: "請輸入一個正確的郵箱", agree: "請接受我們的聲明", topic: "請選擇兩個主題" } }); } </script> <style> .error{ color:red; } </style> </head> <body> <form class="cmxform" id="signupForm" method="get" action=""> <fieldset> <legend>驗證完整的表單</legend> <p> <label for="firstname">名字</label> <input id="firstname" name="firstname" type="text"> </p> <p> <label for="lastname">姓氏</label> <input id="lastname" name="lastname" type="text"> </p> <p> <label for="username">用戶名</label> <input id="username" name="username" type="text"> </p> <p> <label for="password">密碼</label> <input id="password" name="password" type="password"> </p> <p> <label for="confirm_password">驗證密碼</label> <input id="confirm_password" name="confirm_password" type="password"> </p> <p> <label for="email">Email</label> <input id="email" name="email" type="email"> </p> <p> <label for="agree">請同意我們的聲明</label> <input type="checkbox" class="checkbox" id="agree" name="agree"> </p> <p> <label for="newsletter">我樂意接收新信息</label> <input type="checkbox" class="checkbox" id="newsletter" name="newsletter"> </p> <fieldset id="newsletter_topics"> <legend>主題 (至少選擇兩個) - 註意:如果沒有勾選“我樂意接收新信息”以下選項會隱藏,但我們這裏作為演示讓它可見</legend> <label for="topic_marketflash"> <input type="checkbox" id="topic_marketflash" value="marketflash" name="topic">Marketflash </label> <label for="topic_fuzz"> <input type="checkbox" id="topic_fuzz" value="fuzz" name="topic">Latest fuzz </label> <label for="topic_digester"> <input type="checkbox" id="topic_digester" value="digester" name="topic">Mailing list digester </label> <label for="topic" class="error">Please select at least two topics you‘d like to receive.</label> </fieldset> <p> <input class="submit" type="submit" value="提交"> </p> </fieldset> </form> </body>
2.2自定義規則使用
addMethod(name,method,message)方法
參數 name 是添加的方法的名字。
參數 method 是一個函數,接收三個參數 (value,element,param) 。
value 是元素的值,element 是元素本身,param 是參數。
<script> $.validator.setDefaults({ submitHandler: function() { //驗證正確後調用 alert("提交事件!"); } }); $().ready(function() { //界面加載後觸發 validateRule(); }); //自定義 "checkname" 校驗方法 $.validator.addMethod("checkname", function (value, element, params) { var checkname = /^[\u4e00-\u9fa5]{1,6}$/; return this.optional(element) || (checkname.test(value)); }); /** //也可以這樣寫,可以不用再在messages裏寫信息了 $.validator.addMethod("checkname", function (value, element, params) { var checkname = /^[\u4e00-\u9fa5]{1,6}$/; return this.optional(element) || (checkname.test(value)); }, $.validator.format("請輸入1-6位中文字符")); **/ function validateRule() { //表單提交時觸發 $("#signupForm").validate({ rules: { username: { required: true, checkname:true } }, messages: { username: { required: "請輸入用戶名", checkname:"請輸入1-6位中文字符" } } }); } </script> <style> .error{ color:red; } </style> </head> <body> <form class="cmxform" id="signupForm" method="get" action=""> <p> <label for="username">名字</label> <input id="username" name="username" type="text"> </p> <p> <input class="submit" type="submit" value="提交"> </p> </form> </body>
2.3收集的一些規則
身份證號碼驗證
jQuery.validator.addMethod("idcardno", function(value, element) { return this.optional(element) || isIdCardNo(value); }, "請正確輸入身份證號碼");
字母數字
jQuery.validator.addMethod("alnum", function(value, element) { return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value); }, "只能包括英文字母和數字");
郵政編碼驗證
jQuery.validator.addMethod("zipcode", function(value, element) { var tel = /^[0-9]{6}$/; return this.optional(element) || (tel.test(value)); }, "請正確填寫郵政編碼");
漢字
jQuery.validator.addMethod("chcharacter", function(value, element) { var tel = /^[u4e00-u9fa5]+$/; return this.optional(element) || (tel.test(value)); }, "請輸入漢字");
字符最小長度驗證(一個中文字符長度為2)
jQuery.validator.addMethod("stringMinLength", 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); }, $.validator.format("長度不能小於 { 0 }!"));
字符最大長度驗證(一個中文字符長度為2)
jQuery.validator.addMethod("stringMaxLength", 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); }, $.validator.format("長度不能大於 { 0 }!"));
字符驗證
jQuery.validator.addMethod("string", function(value, element) { return this.optional(element) || /^[u0391-uFFE5w]+$/.test(value); }, "不允許包含特殊符號!");
手機號碼驗證
jQuery.validator.addMethod("mobile", function(value, element) { var length = value.length; return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1}))+d{8})$/.test(value)); }, "手機號碼格式錯誤!");
電話號碼驗證
jQuery.validator.addMethod("phone", function(value, element) { var tel = /^(d{3,4}-?)?d{7,9}$/g; return this.optional(element) || (tel.test(value)); }, "電話號碼格式錯誤!");
必須以特定字符串開頭驗證
jQuery.validator.addMethod("begin", function(value, element, param) { var begin = new RegExp(" ^ "+param); return this.optional(element) || (begin.test(value)); }, $.validator.format("必須以 { 0 } 開頭!"));
驗證兩次輸入值是否不相同
jQuery.validator.addMethod("notEqualTo", function(value, element, param) { return value != $(param).val(); }, $.validator.format("兩次輸入不能相同!"));
驗證值不允許與特定值等於
jQuery.validator.addMethod("notEqual", function(value, element, param) { return value != param; }, $.validator.format("輸入值不允許為 { 0 }!"));
驗證值必須大於特定值(不能等於)
jQuery.validator.addMethod("gt", function(value, element, param) { return value > param; }, $.validator.format("輸入值必須大於 { 0 }!"));
小數點前最多9位,小數點後最多6位
jQuery.validator.addMethod("decimal", function (value, element) { return this.optional(element) || /^([1-9]\d{0,8}|0)(\.\d{1,6})?$/.test(value); }, "小數點前最多9位,小數點後最多6位^_^");
結束時間不能小於開始時間
jQuery.validator.addMethod("laterTo", function (value, element, param) { return $(param).val().split("-").join("") < $(element).val().split("-").join(""); }, "結束時間不能小於開始時間^_^");
Jquery Validate 表單驗證使用