天天看點

表單驗證插件jquery.validate.js

最近進行的項目中需要用到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>
           

繼續閱讀