亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery驗證插件 Validate詳解

2019-11-20 13:54:42
字體:
來源:轉載
供稿:網友

最常使用JavaScript的場合就是表單的驗證,而jQuery作為一個優秀的JavaScript庫,也提供了一個優秀的表單驗證插件----Validation。Validation是歷史最悠久的jQuery插件之一,經過了全球范圍內不同項目的驗證,并得到了許多Web開發者的好評。作為一個標準的驗證方法庫,Validation擁有如下特點:

1.內置驗證規則: 擁有必填、數字、Email、URL和信用卡號碼等19類內置驗證規則
2.自定義驗證規則: 可以很方便地自定義驗證規則
3.簡單強大的驗證信息提示: 默認了驗證信息提示,并提供自定義覆蓋默認的提示信息的功能
4.實時驗證: 可能通過keyup或blur事件觸發驗證,而不僅僅在表單提交的時候驗證

validate.js下載地址: http://plugins.jquery.com/project/validate
metadata.js下載地址: http://plugins.jquery.com/project/metadata
使用方法:
1.引入jQuery庫和Validation插件

復制代碼 代碼如下:

<script src="scripts/jquery-1.6.4.js" type="text/javascript"></script> 
<script src="scripts/jquery.validate.js" type="text/javascript"></script>

2.確定哪個表單需要被驗證

復制代碼 代碼如下:

<script type="text/javascript"> 
////<![CDATA[ 
$(document).ready(function(){ 
    $("#commentForm").validate(); 
}); 
//]]> 
</script> 

3.針對不同的字段,進行驗證規則編碼,設置字段相應的屬性

復制代碼 代碼如下:

class="required"   必須填寫 
class="required email"        必須填寫且內容符合Email格式驗證 
class="url"             符合URL格式驗證 
minlength="2"      最小長度為2 
可驗證的規則有19種:
[javascript] view plaincopyprint?
required:      必選字段 
remote:        "請修正該字段", 
email:         電子郵件驗證 
url:           網址驗證 
date:          日期驗證 
dateISO:       日期 (ISO)驗證 
dateDE: 
number:        數字驗證 
numberDE: 
digits:        只能輸入整數 
creditcard:    信用卡號驗證 
equalTo:       ”請再次輸入相同的值“驗證 
accept:        擁有合法后綴名的字符串驗證 
maxlength/minlength:    最大/最小長度驗證 
rangelength:     字符串長度范圍驗證 
range:           數字范圍驗證 
max/min:         最大值/最小值驗證 

需要引入的js

復制代碼 代碼如下:

<script type="text/javascript" src="../../scripts/jquery-1.3.1.js"></script>
<script type="text/javascript" src="lib/jquery.validate.js"></script>

初始化的HTML

復制代碼 代碼如下:

<script type="text/javascript">
$(function(){
 $("#commentForm").validate()
})
</script>
<form class="cmxform" id="commentForm" method="get" action="">
 <fieldset>
   <legend>一個簡單的validate驗證帶驗證提示的評論例子</legend>
   <p>
     <label for="cusername">姓名</label>
     <em>*</em><input id="cusername" name="username" size="25" class="required" minlength="2" />
   </p>
   <p>
     <label for="cemail">電子郵件</label>
     <em>*</em><input id="cemail" name="email" size="25" class="required email"  />
   </p>
   <p>
     <label for="curl">網址</label>
     <em>  </em><input id="curl" name="url" size="25" class="url" />
   </p>
   <p>
     <label for="ccomment">你的評論</label>
     <em>*</em><textarea id="ccomment" name="comment" cols="22" class="required" ></textarea>
   </p>
 <p>
     <input class="submit" type="submit" value="提交"/>
   </p>

首先看默認設置的規格

序號 規則 描述
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。

required表示必須填寫的

email表示必須正確的郵箱

把驗證的規格寫在HTML內的class內,方法欠妥,后期的維護增加成本,沒有實現行為與結構的分離

所以,可以想把HTML內的class都清空,如下:

復制代碼 代碼如下:

<form class="cmxform" id="commentForm" method="get" action="">
 <fieldset>
   <legend>一個簡單的validate驗證帶驗證提示的評論例子</legend>
   <p>
     <label for="cusername">姓名</label>
     <em>*</em><input id="cusername" name="username" size="25" />
   </p>
   <p>
     <label for="cemail">電子郵件</label>
     <em>*</em><input id="cemail" name="email" size="25"  />
   </p>
   <p>
     <label for="curl">網址</label>
     <em>  </em><input id="curl" name="url" size="25" />
   </p>
   <p>
     <label for="ccomment">你的評論</label>
     <em>*</em><textarea id="ccomment" name="comment" cols="22" ></textarea>
   </p>
 <p>
     <input class="submit" type="submit" value="提交"/>
   </p>

js

復制代碼 代碼如下:

 $(document).ready(function(){
    $("#commentForm").validate({
      rules:{
        username:{
          required:true,
          minlength:2
        },
        email:{
          required:true,
          email:true
        },
        url:"url",
        comment:"required",
        valcode: {
          formula: "7+9" 
        }
      }
    });
  });
  </script>

因為默認的提示是英文的,可以改寫成

復制代碼 代碼如下:

jQuery.extend(jQuery.validator.messages, {
        required: "必選字段",
        remote: "請修正該字段",
        email: "請輸入正確格式的電子郵件",
        url: "請輸入合法的網址",
        date: "請輸入合法的日期",
        dateISO: "請輸入合法的日期 (ISO).",
        number: "請輸入合法的數字",
        digits: "只能輸入整數",
        creditcard: "請輸入合法的信用卡號",
        equalTo: "請再次輸入相同的值",
        accept: "請輸入擁有合法后綴名的字符串",
        maxlength: jQuery.format("請輸入一個長度最多是 {0} 的字符串"),
        minlength: jQuery.format("請輸入一個長度最少是 {0} 的字符串"),
        rangelength: jQuery.format("請輸入一個長度介于 {0} 和 {1} 之間的字符串"),
        range: jQuery.format("請輸入一個介于 {0} 和 {1} 之間的值"),
        max: jQuery.format("請輸入一個最大為 {0} 的值"),
        min: jQuery.format("請輸入一個最小為 {0} 的值")
});

建議新建一個js,放到validate.js 下面.

關于提示的美化

復制代碼 代碼如下:

errorElement:"em"

  創建一個標簽,可以自定義

復制代碼 代碼如下:

success:function(label){
        label.text(" ").addClass('success')
      }

這里的參數label是指向創建的標簽,這里也就是”em“ 然后情況自己的內容,在加上自己的class就可以了

完整的js

復制代碼 代碼如下:

  $("#commentForm").validate({
      rules:{
        username:{
          required:true,
          minlength:2
        },
        email:{
          required:true,
          email:true
        },
        url:"url",
        comment:"required",
      },
      errorElement:"em",
      success:function(label){
        label.text(" ").addClass('success')
      }
    });

相對應的css

復制代碼 代碼如下:

em.error {
  background:url("images/unchecked.gif") no-repeat 0px 0px;
  padding-left: 16px;
}
em.success {
  background:url("images/checked.gif") no-repeat 0px 0px;
  padding-left: 16px;
}

.success放到.error下面。。。唔唔。。具體的情況。。只可體會不可言會。。唔。。

在做項目的過程中千變萬化,有時候要滿足不同的需求,validate也可以單獨的修改驗證的信息。。

例如:

復制代碼 代碼如下:

  messages:{
        username:{
          required:"主人,我要填的滿滿的",
          minlength:"哎唷,長度不夠耶"
        }
   }

完整的js

復制代碼 代碼如下:

 $("#commentForm").validate({
      rules:{
        username:{
          required:true,
          minlength:2
        },
        email:{
          required:true,
          email:true
        },
        url:"url",
        comment:"required",
        valcode: {
          formula: "7+9" 
        }
      },
      messages:{
        username:{
          required:"主人,我要填的滿滿的",
          minlength:"哎唷,長度不夠耶"
        }
      },
      errorElement:"em",
      success:function(label){
        label.text(" ").addClass('success')
      }
    });

這里就可以啦。

關于自定義驗證規則

增加一段HTML代碼

復制代碼 代碼如下:

 <p>
     <label for="cvalcode">驗證碼</label>
     <input id="valcode" name="valcode"  />=7+9
   </p>

自定一個規則

復制代碼 代碼如下:

$.validator.addMethod("formula",function(value,element,param){
      return value==eval(param)
    },"請正確輸入驗證信息");

formula是需要驗證方法的名字 好比如required 必須的。
value返回的當前input的value值
param返回的是當前自定義的驗證格式 好比如:7+9
在試用了eval方法 讓字符串相加

完整的js

復制代碼 代碼如下:

$.validator.addMethod("formula",function(value,element,param){
      return value==eval(param)
    },"請正確輸入驗證信息");
    $("#commentForm").validate({
      rules:{
        username:{
          required:true,
          minlength:2
        },
        email:{
          required:true,
          email:true
        },
        url:"url",
        comment:"required",
        valcode: {
          formula: "7+9" 
        }
      },
      messages:{
        username:{
          required:"主人,我要填的滿滿的",
          minlength:"哎唷,長度不夠耶"
        }
      },
      errorElement:"em",
      success:function(label){
        label.text(" ").addClass('success')
      }
    });

額。。沒了 學的不深,這是基礎的一部分。。還會繼續深入學習去。掰掰( ^_^ )/~~拜拜

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本一区二区在线播放| 91久久久久久久| 日本一区二三区好的精华液| 狠狠爱在线视频一区| 亚洲第一级黄色片| 精品美女久久久久久免费| 欧美成人免费播放| 国产一区二区三区毛片| 欧美在线观看网址综合| 日韩精品福利在线| 精品久久久久久中文字幕一区奶水| 美女福利精品视频| 日韩av在线免费看| 久久资源免费视频| 国产成人一区二区在线| 日韩精品在线免费观看视频| 欧美在线视频免费| 欧美一区在线直播| 欧美精品一区二区免费| 久久久久久久久久久成人| 成人免费网站在线| …久久精品99久久香蕉国产| 欧美理论片在线观看| 福利视频导航一区| 91综合免费在线| 国产精品99久久久久久久久| 亚洲一区二区三区xxx视频| 国产精品久久久久久av福利软件| 国产精品va在线播放我和闺蜜| 亚洲一区av在线播放| 精品福利在线视频| 亚洲天堂av在线播放| 亚州国产精品久久久| 91高潮在线观看| 最新中文字幕亚洲| 欧美日韩在线视频观看| 中文字幕欧美日韩| 亚洲大胆人体av| 欧美一区二区三区免费视| 欧美华人在线视频| 欧美一级片在线播放| 91chinesevideo永久地址| 久久福利视频导航| 国产欧美日韩高清| 亚洲电影免费观看高清完整版在线| y97精品国产97久久久久久| 国产成人福利网站| 国产成人久久精品| 久久久亚洲国产天美传媒修理工| 日韩av资源在线播放| 热久久视久久精品18亚洲精品| 国产精品人成电影| 国产亚洲综合久久| 日韩欧美a级成人黄色| 日韩精品极品视频免费观看| 国产999精品久久久影片官网| 亚洲石原莉奈一区二区在线观看| 国产精品丝袜视频| 欧美中文字幕第一页| 国产精品99久久99久久久二8| 欧美视频在线免费| 欧美在线国产精品| 国产一区二区三区丝袜| 超碰精品一区二区三区乱码| 亚洲缚视频在线观看| 国产精品视频地址| 国产成人亚洲综合青青| 97精品国产97久久久久久| 欧美激情一级欧美精品| 日韩亚洲成人av在线| 成人在线中文字幕| 96pao国产成视频永久免费| 欧美日韩一区二区三区在线免费观看| 久久精品人人爽| 91精品国产高清| 亚洲第一av网| 不卡中文字幕av| 久久综合88中文色鬼| 亚州精品天堂中文字幕| 日韩美女av在线免费观看| 狠狠色狠狠色综合日日五| 欧美日韩成人在线视频| 95av在线视频| 久久久综合免费视频| 日韩视频免费看| www.日本久久久久com.| 欧美成人精品h版在线观看| 日本欧美中文字幕| 国产98色在线| 精品动漫一区二区三区| 91精品国产91久久久久久吃药| 亚洲欧美三级在线| 国产精品扒开腿爽爽爽视频| 欧美中文字幕在线观看| 亚洲乱码一区av黑人高潮| 日韩在线免费高清视频| 日韩av免费在线| 国产精品美女网站| 欧美野外猛男的大粗鳮| 黑人与娇小精品av专区| 美女久久久久久久久久久| 精品成人国产在线观看男人呻吟| 91国产视频在线播放| 免费99精品国产自在在线| 欧美老少配视频| 亚洲三级免费看| 亚洲色图综合网| 久久成人一区二区| 日韩在线中文字幕| 久久久久久久久亚洲| 亚洲在线免费视频| 日韩国产欧美精品在线| 亚洲精品久久久一区二区三区| 亚洲影院高清在线| 欧美丰满少妇xxxxx| 欧美裸体xxxx极品少妇软件| 国产欧美精品va在线观看| 久久国产精品视频| 亚洲一区久久久| 久久久久久久影视| 久久99国产精品久久久久久久久| 日韩精品免费观看| 九九热在线精品视频| 成人深夜直播免费观看| 久久99视频精品| 久久免费精品视频| 亚洲一区二区免费在线| 亚洲视频电影图片偷拍一区| 亚洲一区二区久久久久久| 成人激情免费在线| 一本色道久久综合狠狠躁篇怎么玩| 成人激情综合网| 国产在线观看精品一区二区三区| 综合网日日天干夜夜久久| 在线成人免费网站| 欧美日韩一区二区免费视频| 久久午夜a级毛片| 91精品视频大全| 国产精品视频导航| 日韩电影大全免费观看2023年上| 丝袜亚洲另类欧美重口| 伊人一区二区三区久久精品| 亚洲黄色成人网| 亚洲欧美日韩第一区| 国产精品丝袜高跟| 狠狠躁天天躁日日躁欧美| 欧美激情欧美激情在线五月| 色香阁99久久精品久久久| 久久亚洲春色中文字幕| 久久精品视频在线观看| 国产精品久久一区主播| 成人黄色激情网| 亚洲一区二区日本| 亚洲免费高清视频| 欧美大片在线看免费观看| 91综合免费在线| 国产日韩中文在线| 日韩在线观看精品| 伊人青青综合网站| 欧美性猛交xxxx富婆| 欧美激情二区三区| 久久不射电影网| 国产精品美女www爽爽爽视频| 亚洲人成电影网站色xx|