最近進行的項目中需要用到jquery.validate.js這個插件,是以就整理了一下demo,給項目組的成員進行教育訓練了解該插件的用法。是以在本篇文章中我會詳細的講解具體用法。
jQuery Validate 插件為表單提供了強大的驗證功能,讓用戶端表單驗證變得更簡單,同時提供了大量的定制選項,滿足應用程式各種需求。該插件捆綁了一套有用的驗證方法,包括 URL 和電子郵件驗證,同時提供了一個用來編寫使用者自定義方法的 API。所有的捆綁方法預設使用英語作為錯誤資訊,且已翻譯成其他 37 種語言。
該插件是由 Jörn Zaefferer 編寫和維護的,他是 jQuery 團隊的一名成員,是 jQuery UI 團隊的主要開發人員,是 QUnit 的維護人員。該插件在 2006 年 jQuery 早期的時候就已經開始出現,并一直更新至今。目前版本是 1.13.1。
通路 jQuery Validate 官網,下載下傳最新版的 jQuery Validate 插件。
1、導入 js 庫
<script src="js/jquery-1.8.0.min.js" type="text/javascript"></script>
<script src="js/jquery.validate.min.js" type="text/javascript"></script>
2、HTML編寫需要驗證的表單
<form id="signupForm" method="get" action="">
<p>
<label for="firstname">使用者名</label>
<input id="firstname" name="firstname" class="required" />
</p>
<p>
<label for="email">E-Mail</label>
<input id="email" name="email" class="required email" />
</p>
<p>
<label for="password">密 碼</label>
<input id="password" name="password" type="password" class="{required:true,minlength:5,messages:{required:'請輸入密碼'}}" />
</p>
<p>
<label for="confirm_password">确認密碼</label>
<input id="confirm_password" name="confirm_password" type="password" class="{required:true,minlength:5,equalTo:'#password'}" />
</p>
<p>
<input class="submit" type="submit" value="Submit"/>
</p>
</form>
3、确定哪個表單需要被驗證
<script>
$().ready(function() {
$("#signupForm").validate();
//$("#signupForm").validate({meta: "validate"});
});
</script>
4、通過Class進行驗證規則編碼
<span style="white-space:pre"> </span>class="required" 必須填寫
<span style="white-space:pre"> </span>class="required email" 必須填寫且内容符合Email格式驗證
<span style="white-space:pre"> </span>class="url" 符合URL格式驗證
<span style="white-space:pre"> </span>minlength="2" 最小長度為2
預設校驗規則
序号 | 規則 | 描述 |
---|---|---|
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。 |
預設提示
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).",
dateDE: "Bitte geben Sie ein gültiges Datum ein.",
number: "Please enter a valid number.",
numberDE: "Bitte geben Sie eine Nummer ein.",
digits: "Please enter only digits",
creditcard: "Please enter a valid credit card number.",
equalTo: "Please enter the same value again.",
accept: "Please enter a value with a valid extension.",
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}.")
},
如需要修改,可在 js 代碼中加入:
jQuery.extend(jQuery.validator.messages, {
required: "必選字段",
remote: "請修正該字段",
email: "請輸入正确格式的電子郵件",
url: "請輸入合法的網址",
date: "請輸入合法的日期",
dateISO: "請輸入合法的日期 (ISO).",
number: "請輸入合法的數字",
digits: "隻能輸入整數",
creditcard: "請輸入合法的信用卡号",
equalTo: "請再次輸入相同的值",
accept: "請輸入擁有合法字尾名的字元串",
maxlength: jQuery.validator.format("請輸入一個 長度最多是 {0} 的字元串"),
minlength: jQuery.validator.format("請輸入一個 長度最少是 {0} 的字元串"),
rangelength: jQuery.validator.format("請輸入 一個長度介于 {0} 和 {1} 之間的字元串"),
range: jQuery.validator.format("請輸入一個介于 {0} 和 {1} 之間的值"),
max: jQuery.validator.format("請輸入一個最大為{0} 的值"),
min: jQuery.validator.format("請輸入一個最小為{0} 的值")
});
推薦做法,将此檔案放入 messages_cn.js 中,在頁面中引入:
<script src="../js/messages_cn.js" type="text/javascript"></script>
5、使用Class="{}" 的時候
使用 class="{}" 的方式,必須引入包:jquery.metadata.js。
<script src="js/jquery.metadata.js" type="text/javascript"></script>
可以使用如下的方法,修改提示内容:
class="{required:true,minlength:5,messages:{required:'請輸入内容'}}"
在使用 equalTo 關鍵字時,後面的内容必須加上引号,代碼如下所示:
class="{required:true,minlength:5,equalTo:'#password'}"
以上就是jQuery.validate的基本用法,下面我附上整篇完整的代碼,有需要的随意拿走
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>表單驗證</title>
</head>
<script src="js/jquery-1.8.0.min.js" type="text/javascript"></script>
<script src="js/jquery.validate.min.js" type="text/javascript"></script>
<script src="js/jquery.metadata.js" type="text/javascript"></script>
<body>
<script>
$().ready(function() {
$("#signupForm").validate();
//$("#signupForm").validate({meta: "validate"});
});
</script>
<form id="signupForm" method="get" action="">
<p>
<label for="firstname">使用者名</label>
<input id="firstname" name="firstname" class="required" />
</p>
<p>
<label for="email">E-Mail</label>
<input id="email" name="email" class="required email" />
</p>
<p>
<label for="password">密 碼</label>
<input id="password" name="password" type="password" class="{required:true,minlength:5,messages:{required:'請輸入密碼'}}" />
</p>
<p>
<label for="confirm_password">确認密碼</label>
<input id="confirm_password" name="confirm_password" type="password" class="{required:true,minlength:5,equalTo:'#password'}" />
</p>
<p>
<input class="submit" type="submit" value="Submit"/>
</p>
</form>
</body>
</html>