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

首頁 > 編程 > JavaScript > 正文

JQurey Validation表單驗證使用詳解

2019-11-20 12:34:47
字體:
來源:轉載
供稿:網友

是一款優秀的插件,它能對客戶端表單進行驗證,并且提供了許多可以定制的屬性和方法,良好的擴展性。本文就是通過講解這個實例來理解Validation的應用。

本實例涉及到的驗證有:

用戶名:長度、字符驗證,重復性ajax驗證(是否已存在)。

密碼:長度驗證,重復輸入密碼驗證。

郵件:郵件地址驗證。

固定電話:中國大陸固定電話號碼驗證。

手機號:中國大陸手機號碼驗證。

網址:網站URL地址驗證。

日期:標準日期格式驗證。

數字:整數、正整數驗證,數字范圍驗證。

身份證:大陸身份證號碼驗證。

郵政編碼:大陸郵政編碼驗證。

文件:文件類型(后綴)驗證,如只允許上傳圖片。

IP:IP地址驗證。

驗證碼:驗證碼ajax驗證。

使用方法:

1、準備jquery和jquery.validate插件

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

2、準備CSS樣式

頁面樣式我不再詳述,大家可以自己寫個樣式,也可以參看DEMO的頁面源代碼。這里要強調的關鍵樣式是要顯示驗證信息的樣式

label.error{color:#ea5200; margin-left:4px; padding:0px 20px; background:url(images/unchecked.gif) no-repeat 2px 0 } label.right{margin-left:4px; padding-left:20px; background: url(images/checked.gif) no-repeat 2px 0} 

3、XHTML

<form id="myform" action="#" method="post"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="mytable">  <tr class="table_title">   <td colspan="2">jquery.validation 表單驗證</td>  </tr>  <tr>   <td width="22%" align="right">用戶名:</td>   <td><input type="text" name="user" id="user" class="input required" />   <p>用戶名為3-16個字符,可以為數字、字母、下劃線以及中文</p></td>  </tr>  <tr>   <td align="right">密碼:</td>   <td><input type="password" name="pass" id="pass" class="input required" />   <p>最小長度:6 最大長度:16</p>   </td>  </tr>  <tr>   <td align="right">確認密碼:</td>   <td><input type="password" name="repass" class="input required" /></td>  </tr> </table> </form>

限于篇幅,本文的只截取了實例中HTML代碼的一小部分,詳細XHTML代碼可參看頁面DEMO源代碼。值得一提的是,我在給了標簽一個“required”類樣式,下文將會提到它的作用。

4、應用Validation插件

調用Validation插件的方法:

$(function(){      var validate = $("#myform").validate({      rules:{ //定義驗證規則       ......      },      messages:{ //定義提示信息       ......      }   }) }); 

rules:定義驗證規則,key:value的形式,key是要驗證的元素,value可以是字符串或對象。比如驗證用戶名的長度和不允許為空:

rules:{  user:{    required:true,    maxlength:16,    minlength:3  },  ...... } 

其實我們在XHTML代碼中可以直接指定input的class屬性為required,作用是不允許為空,這樣在JS部分就不用重復寫了。同樣的驗證email等,直接設置input的class屬性為email。

messages:定義提示信息,key:value的形式key是要驗證的元素,值是字符串或函數,當驗證不通過時提示的信息。

messages:{  user:{    required:"用戶名不能為空!",    remote:"該用戶名已存在,請換個其他的用戶名!"  },  ...... } 

本例中涉及的驗證JS就是按照上面的規則進行編寫的,Validation插件封裝了好多基本的驗證方式,如下:

required:true 必須有值,不能為空

remote:url 可以用于判斷用戶名等是否已經存在,服務器端輸出true,表示驗證通過

minlength:6 最小長度為6

maxlength:16 最大長度為16

rangelength:長度范圍

range:[10,20] 數值范圍在10-20之間

email:true 驗證郵件

url:true 驗證URL網址

dateISO:true 驗證日期格式'yyyy-mm-dd'

digits:true 只能為數字

accept:'gif|jpg' 只接受gif或jpg為后綴的圖片。常用于驗證文件的擴展名

equalTo:'#pass' 與哪個表單字段的值相等,常用于驗證重復輸入密碼

此外,我還根據項目實際情況擴展了幾個驗證,驗證的代碼在validate-ex.js,使用前需要先加載這個JS。它能提供以下驗證:

userName:true 用戶名只能包括中文字、英文字母、數字和下劃線

isMobile:true 手機號碼驗證

isPhone:true 大陸手機號碼驗證

isZipCode:true 郵政編碼驗證

isIdCardNo:true 大陸身份證號碼驗證

ip:true IP地址驗證

以上提供的驗證方式基本上滿足我們在大多數項目中的需求。如果其他特殊驗證需求,可以擴展,方法如:

jQuery.validator.addMethod("isZipCode", function(value, element) {    var zip = /^[0-9]{6}$/;    return this.optional(element) || (zip.test(value));   }, "請正確填寫您的郵政編碼!"); 

疑難問題解決

1、在項目中遇到在驗證用戶名是否存在時,發現不支持中文輸入驗證。我的解決辦法是給用戶名進行encodeURIComponent編碼,后臺PHP再對接受的值進行urldecode解碼

user:{   remote: {      url: "chk_user.php", //服務端驗證程序      type: "post", //提交方式      data: { user: function() {        return encodeURIComponent($("#user").val()); //編碼數據      }}   } }, 

服務端驗證程序chk_user.php的代碼:

<?php $request = urldecode(trim($_POST['user'])); usleep(150000); $users = array('daimajiayuan.com', 'jeymii', 'Peter', 'daimajiayuan'); $valid = 'true'; foreach($users as $user) {   if( strtolower($user) == $request )     $valid = 'false'; } echo $valid; ?> 

我使用的服務端程序是PHP,您也可以使用ASP,ASP.NET,JAVA等。此外本例為了演示,用戶名數據是直接寫在服務端的,真正的應用是從數據庫里取出的用戶名數據,來和接收客戶端的數據進行對比。

2、在驗證checkbox和radio控件時,驗證信息不會出現在最后的控件文本后面,而是直接跟在第一個控件的后面,不符合我們的要求。

解決辦法是在validate({})追加以下代碼:

errorPlacement: function(error, element) {   if ( element.is(":radio") )     error.appendTo ( element.parent() );   else if ( element.is(":checkbox") )     error.appendTo ( element.parent() );   else if ( element.is("input[name=captcha]") )     error.appendTo ( element.parent() );   else     error.insertAfter(element); } 

3、重置表單。Form表單原始的重置方法是reset自帶

<input type="reset" value="重 置" /> 

點擊“重置”按鈕,表單元素將會重置,但是再運行Validation插件后,驗證的提示信息并沒重置,就是那些提示信息沒有消失。感謝Validation提供了重置表單的方法:resetForm()

$("input:reset").click(function(){   validate.resetForm(); }); 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品一区电影国产| 日韩av免费看| 69久久夜色精品国产69| 中文字幕亚洲欧美| 亚洲香蕉在线观看| 亚洲欧美自拍一区| 亚洲福利在线视频| 日韩激情av在线免费观看| 欧美中文字幕在线观看| 亚洲区bt下载| 久久天天躁日日躁| 欧美在线视频在线播放完整版免费观看| 精品久久中文字幕| 欧美老女人性视频| 欧美成人激情在线| www.日韩不卡电影av| 亚洲一品av免费观看| 91久久久精品| 中文字幕欧美视频在线| 国内精品久久久久久久久| 国产午夜精品久久久| 久热精品在线视频| 日韩精品欧美国产精品忘忧草| 日韩一级黄色av| 97在线观看免费| 亚洲精品视频免费在线观看| 精品亚洲一区二区| 欧美成人免费va影院高清| 成人久久久久久久| 国产精品久久av| 热久久美女精品天天吊色| 91精品国产91久久久久久最新| 国产精品久久久久久久久久ktv| 8050国产精品久久久久久| 中文字幕精品在线| 国产一区视频在线播放| 国产国语videosex另类| 日韩中文在线观看| 一区二区av在线| 久久久免费在线观看| 午夜剧场成人观在线视频免费观看| 26uuu亚洲国产精品| 欧美最猛性xxxx| 日本aⅴ大伊香蕉精品视频| 欧美日韩中国免费专区在线看| 欧美高跟鞋交xxxxxhd| 欧美日韩高清区| 久久国产精品久久久久久久久久| 日韩av电影在线免费播放| 久久精品国产亚洲精品| 亚洲国产一区自拍| 欧美激情性做爰免费视频| 日韩不卡在线观看| 18性欧美xxxⅹ性满足| 日韩在线免费视频| 亚洲嫩模很污视频| 亚洲色图欧美制服丝袜另类第一页| 国产成人精品一区二区三区| 欧美日韩黄色大片| 在线精品播放av| 欧美激情视频在线观看| 日韩中文第一页| 国产在线观看一区二区三区| 国产一区二区欧美日韩| 国产精品白丝jk喷水视频一区| 欧美香蕉大胸在线视频观看| 91禁外国网站| 精品久久久久久久久久久久久| 成人网中文字幕| 国产成人精彩在线视频九色| 国产男女猛烈无遮挡91| 国产精品久久久久久久一区探花| 色综合久久中文字幕综合网小说| 免费av一区二区| 日韩欧美亚洲国产一区| 国产成人免费av电影| 热久久这里只有精品| 国产精品中文久久久久久久| 中文字幕日韩av| 国内精品久久久久久久久| 国产成人中文字幕| 日韩av有码在线| 亚洲美女在线看| 91理论片午午论夜理片久久| 国产精品 欧美在线| 亚州欧美日韩中文视频| 国产精品久久久久久超碰| 久久久久免费精品国产| 国产精品高清免费在线观看| 日韩二区三区在线| 国产精品一二三在线| 亚洲欧美日韩在线一区| 亚洲欧美日韩国产中文专区| 精品亚洲一区二区三区| 91精品久久久久久久久中文字幕| 这里只有精品在线观看| 亚洲精品一区二三区不卡| 欧美日韩亚洲精品内裤| 97香蕉久久超级碰碰高清版| 亚洲无av在线中文字幕| 2019日本中文字幕| 红桃视频成人在线观看| 在线观看国产精品91| 尤物yw午夜国产精品视频明星| 亚洲欧美在线免费观看| 91网站在线看| 欧美插天视频在线播放| 久久久久成人网| 亚洲黄页视频免费观看| 亚洲一区第一页| 一区二区成人精品| 久久频这里精品99香蕉| 欧美极品少妇xxxxⅹ喷水| 国产精品男人爽免费视频1| 午夜精品视频在线| 91中文字幕在线| 91精品国产99久久久久久| 日韩在线中文字幕| 午夜精品理论片| 久久精品国产成人精品| 亚洲国产精品99久久| 国产美女被下药99| 国产精自产拍久久久久久| 日韩中文在线不卡| 亚洲欧洲国产精品| 日韩欧美在线一区| 爱福利视频一区| 992tv在线成人免费观看| 国产精品久久久久久久9999| 亚洲新中文字幕| 欧美人与性动交| 亚洲美女性视频| 欧美黑人狂野猛交老妇| 国产成人精品视频| 久久影视三级福利片| 97在线观看免费高清| 欧美中文字幕在线播放| 国产精品va在线| 日韩中文字幕在线免费观看| 毛片精品免费在线观看| 亚洲国产精品va在线看黑人| 久久久精品在线| 尤物tv国产一区| 亚洲欧美日韩视频一区| 91在线视频精品| 国产精品视频yy9099| 成人欧美一区二区三区在线湿哒哒| 欧美做爰性生交视频| 色婷婷成人综合| 亚洲激情电影中文字幕| 欧美黑人极品猛少妇色xxxxx| 日韩视频精品在线| 日本精品久久电影| 日韩av中文字幕在线| 国产精品第一视频| www.国产一区| 精品国产一区二区三区四区在线观看| 中文字幕少妇一区二区三区| 色综合色综合久久综合频道88| 自拍偷拍免费精品| 精品人伦一区二区三区蜜桃免费| 亚洲精品国产综合区久久久久久久| 少妇精69xxtheporn| 亚洲视频777|