欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery驗(yàn)證插件 Validate詳解

 更新時(shí)間:2014年11月20日 09:00:24   投稿:hebedich  
validate是一款很好的jq插件,提供了強(qiáng)大的驗(yàn)證功能,讓客戶(hù)端表單驗(yàn)證變得更簡(jiǎn)單,同時(shí)提供了大量的定制選項(xiàng),滿(mǎn)足應(yīng)用程序各種需求。該插件捆綁了一套有用的驗(yàn)證方法,包括 URL 和電子郵件驗(yàn)證,同時(shí)提供了一個(gè)用來(lái)編寫(xiě)用戶(hù)自定義方法的 API。

最常使用JavaScript的場(chǎng)合就是表單的驗(yàn)證,而jQuery作為一個(gè)優(yōu)秀的JavaScript庫(kù),也提供了一個(gè)優(yōu)秀的表單驗(yàn)證插件----Validation。Validation是歷史最悠久的jQuery插件之一,經(jīng)過(guò)了全球范圍內(nèi)不同項(xiàng)目的驗(yàn)證,并得到了許多Web開(kāi)發(fā)者的好評(píng)。作為一個(gè)標(biāo)準(zhǔn)的驗(yàn)證方法庫(kù),Validation擁有如下特點(diǎn):

1.內(nèi)置驗(yàn)證規(guī)則: 擁有必填、數(shù)字、Email、URL和信用卡號(hào)碼等19類(lèi)內(nèi)置驗(yàn)證規(guī)則
2.自定義驗(yàn)證規(guī)則: 可以很方便地自定義驗(yàn)證規(guī)則
3.簡(jiǎn)單強(qiáng)大的驗(yàn)證信息提示: 默認(rèn)了驗(yàn)證信息提示,并提供自定義覆蓋默認(rèn)的提示信息的功能
4.實(shí)時(shí)驗(yàn)證: 可能通過(guò)keyup或blur事件觸發(fā)驗(yàn)證,而不僅僅在表單提交的時(shí)候驗(yàn)證

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

復(fù)制代碼 代碼如下:

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

2.確定哪個(gè)表單需要被驗(yàn)證

復(fù)制代碼 代碼如下:

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

3.針對(duì)不同的字段,進(jìn)行驗(yàn)證規(guī)則編碼,設(shè)置字段相應(yīng)的屬性

復(fù)制代碼 代碼如下:

class="required"   必須填寫(xiě) 
class="required email"        必須填寫(xiě)且內(nèi)容符合Email格式驗(yàn)證 
class="url"             符合URL格式驗(yàn)證 
minlength="2"      最小長(zhǎng)度為2 
可驗(yàn)證的規(guī)則有19種:
[javascript] view plaincopyprint?
required:      必選字段 
remote:        "請(qǐng)修正該字段", 
email:         電子郵件驗(yàn)證 
url:           網(wǎng)址驗(yàn)證 
date:          日期驗(yàn)證 
dateISO:       日期 (ISO)驗(yàn)證 
dateDE: 
number:        數(shù)字驗(yàn)證 
numberDE: 
digits:        只能輸入整數(shù) 
creditcard:    信用卡號(hào)驗(yàn)證 
equalTo:       ”請(qǐng)?jiān)俅屋斎胂嗤闹怠膀?yàn)證 
accept:        擁有合法后綴名的字符串驗(yàn)證 
maxlength/minlength:    最大/最小長(zhǎng)度驗(yàn)證 
rangelength:     字符串長(zhǎng)度范圍驗(yàn)證 
range:           數(shù)字范圍驗(yàn)證 
max/min:         最大值/最小值驗(yàn)證 

需要引入的js

復(fù)制代碼 代碼如下:

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

初始化的HTML

復(fù)制代碼 代碼如下:

<script type="text/javascript">
$(function(){
 $("#commentForm").validate()
})
</script>
<form class="cmxform" id="commentForm" method="get" action="">
 <fieldset>
   <legend>一個(gè)簡(jiǎn)單的validate驗(yàn)證帶驗(yàn)證提示的評(píng)論例子</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">網(wǎng)址</label>
     <em>  </em><input id="curl" name="url" size="25" class="url" />
   </p>
   <p>
     <label for="ccomment">你的評(píng)論</label>
     <em>*</em><textarea id="ccomment" name="comment" cols="22" class="required" ></textarea>
   </p>
 <p>
     <input class="submit" type="submit" value="提交"/>
   </p>

首先看默認(rèn)設(shè)置的規(guī)格

序號(hào) 規(guī)則 描述
1 required:true 必須輸入的字段。
2 remote:"check.php" 使用 ajax 方法調(diào)用 check.php 驗(yàn)證輸入值。
3 email:true 必須輸入正確格式的電子郵件。
4 url:true 必須輸入正確格式的網(wǎng)址。
5 date:true 必須輸入正確格式的日期。日期校驗(yàn) ie6 出錯(cuò),慎用。
6 dateISO:true 必須輸入正確格式的日期(ISO),例如:2009-06-23,1998/01/22。只驗(yàn)證格式,不驗(yàn)證有效性。
7 number:true 必須輸入合法的數(shù)字(負(fù)數(shù),小數(shù))。
8 digits:true 必須輸入整數(shù)。
9 creditcard: 必須輸入合法的信用卡號(hào)。
10 equalTo:"#field" 輸入值必須和 #field 相同。
11 accept: 輸入擁有合法后綴名的字符串(上傳文件的后綴)。
12 maxlength:5 輸入長(zhǎng)度最多是 5 的字符串(漢字算一個(gè)字符)。
13 minlength:10 輸入長(zhǎng)度最小是 10 的字符串(漢字算一個(gè)字符)。
14 rangelength:[5,10] 輸入長(zhǎng)度必須介于 5 和 10 之間的字符串(漢字算一個(gè)字符)。
15 range:[5,10] 輸入值必須介于 5 和 10 之間。
16 max:5 輸入值不能大于 5。
17 min:10 輸入值不能小于 10。

required表示必須填寫(xiě)的

email表示必須正確的郵箱

把驗(yàn)證的規(guī)格寫(xiě)在HTML內(nèi)的class內(nèi),方法欠妥,后期的維護(hù)增加成本,沒(méi)有實(shí)現(xiàn)行為與結(jié)構(gòu)的分離

所以,可以想把HTML內(nèi)的class都清空,如下:

復(fù)制代碼 代碼如下:

<form class="cmxform" id="commentForm" method="get" action="">
 <fieldset>
   <legend>一個(gè)簡(jiǎn)單的validate驗(yàn)證帶驗(yàn)證提示的評(píng)論例子</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">網(wǎng)址</label>
     <em>  </em><input id="curl" name="url" size="25" />
   </p>
   <p>
     <label for="ccomment">你的評(píng)論</label>
     <em>*</em><textarea id="ccomment" name="comment" cols="22" ></textarea>
   </p>
 <p>
     <input class="submit" type="submit" value="提交"/>
   </p>

js

復(fù)制代碼 代碼如下:

 $(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>

因?yàn)槟J(rèn)的提示是英文的,可以改寫(xiě)成

復(fù)制代碼 代碼如下:

jQuery.extend(jQuery.validator.messages, {
        required: "必選字段",
        remote: "請(qǐng)修正該字段",
        email: "請(qǐng)輸入正確格式的電子郵件",
        url: "請(qǐng)輸入合法的網(wǎng)址",
        date: "請(qǐng)輸入合法的日期",
        dateISO: "請(qǐng)輸入合法的日期 (ISO).",
        number: "請(qǐng)輸入合法的數(shù)字",
        digits: "只能輸入整數(shù)",
        creditcard: "請(qǐng)輸入合法的信用卡號(hào)",
        equalTo: "請(qǐng)?jiān)俅屋斎胂嗤闹?,
        accept: "請(qǐng)輸入擁有合法后綴名的字符串",
        maxlength: jQuery.format("請(qǐng)輸入一個(gè)長(zhǎng)度最多是 {0} 的字符串"),
        minlength: jQuery.format("請(qǐng)輸入一個(gè)長(zhǎng)度最少是 {0} 的字符串"),
        rangelength: jQuery.format("請(qǐng)輸入一個(gè)長(zhǎng)度介于 {0} 和 {1} 之間的字符串"),
        range: jQuery.format("請(qǐng)輸入一個(gè)介于 {0} 和 {1} 之間的值"),
        max: jQuery.format("請(qǐng)輸入一個(gè)最大為 {0} 的值"),
        min: jQuery.format("請(qǐng)輸入一個(gè)最小為 {0} 的值")
});

建議新建一個(gè)js,放到validate.js 下面.

關(guān)于提示的美化

復(fù)制代碼 代碼如下:

errorElement:"em"

  創(chuàng)建一個(gè)標(biāo)簽,可以自定義

復(fù)制代碼 代碼如下:

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

這里的參數(shù)label是指向創(chuàng)建的標(biāo)簽,這里也就是”em“ 然后情況自己的內(nèi)容,在加上自己的class就可以了

完整的js

復(fù)制代碼 代碼如下:

  $("#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')
      }
    });

相對(duì)應(yīng)的css

復(fù)制代碼 代碼如下:

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下面。。。唔唔。。具體的情況。。只可體會(huì)不可言會(huì)。。唔。。

在做項(xiàng)目的過(guò)程中千變?nèi)f化,有時(shí)候要滿(mǎn)足不同的需求,validate也可以單獨(dú)的修改驗(yàn)證的信息。。

例如:

復(fù)制代碼 代碼如下:

  messages:{
        username:{
          required:"主人,我要填的滿(mǎn)滿(mǎn)的",
          minlength:"哎唷,長(zhǎng)度不夠耶"
        }
   }

完整的js

復(fù)制代碼 代碼如下:

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

這里就可以啦。

關(guān)于自定義驗(yàn)證規(guī)則

增加一段HTML代碼

復(fù)制代碼 代碼如下:

 <p>
     <label for="cvalcode">驗(yàn)證碼</label>
     <input id="valcode" name="valcode"  />=7+9
   </p>

自定一個(gè)規(guī)則

復(fù)制代碼 代碼如下:

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

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

完整的js

復(fù)制代碼 代碼如下:

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

額。。沒(méi)了 學(xué)的不深,這是基礎(chǔ)的一部分。。還會(huì)繼續(xù)深入學(xué)習(xí)去。掰掰( ^_^ )/~~拜拜

相關(guān)文章

最新評(píng)論