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

首頁 > 編程 > JavaScript > 正文

jquery表單驗證插件(jquery.validate.js)的3種使用方式

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

jquery  驗證非常簡單,下面總結常用的三種方式:

第一種方式:也是比較標準的方式:

首先引入jquery  插件和 jquery 驗證插件:

第一步:引入插件

復制代碼 代碼如下:

<script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script type="text/javascript" src="js/jquery.metadata.js"></script>
<script type="text/javascript" src="js/messages_zh.js"></script>

第二步: 定義表單的錯誤輸出:
復制代碼 代碼如下:

<style type="text/css">
#frm label.error {
color: Red;
}
</style>

第三步:添加錯誤處理方法;

jquery驗證,需要有:

1:定義驗證方法
2:添加驗證規則

下面貼出常用的驗證小例子,一看就明白了。

先看效果圖:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><script type="text/javascript" src="js/jquery-1.6.1.min.js"></script><script type="text/javascript" src="js/jquery.validate.js"></script><script type="text/javascript" src="js/jquery.metadata.js"></script><script type="text/javascript" src="js/messages_zh.js"></script><style type="text/css">	#frm label.error {		color: Red;	}</style></head><script type="text/javascript">$(document).ready(function(){  $("#clickme").click(function(){     alert("Hello World"); });     $( "#frm" ).validate({      rules: {          username: {              required: true,              minlength: 4,              maxlength: 20,              byteMaxLength:20,              valiEnglish:true          },          postcode: {          	 postcodeVal:true          	},          number: {          	byteMaxLength:5,          	numFormat:5          	},          	identifier: {          	sfzhValidate:true	          }          	          	                },      messages: {          username: {              required: "請輸入用戶名4--20個英文字符",              minlength: $.format("Keep typing, at least {0} characters required!"),              maxlength: $.format("Whoa! Maximum {0} characters allowed!")          },          number: {          	  numFormat: $.format("請輸入{0}數字")          	}      }  });    jQuery.validator.addMethod("byteMaxLength", function(value,					element, param) {				var length = value.length;				for ( var i = 0; i < value.length; i++) {					if (value.charCodeAt(i) > 127) {						length++;					}				}				return this.optional(element) || (length <= param);			}, $.validator.format("不能超過{0}個字節(一個中文字算2個字節)"));  jQuery.validator.addMethod("numFormat",function(value,element,param){			 return this.optional(element) || /^/d*$/.test(value);			}			//,$.validator.format("請輸入數字{0}位以內")			);									 			//number(9,3)			jQuery.validator.addMethod("numFormat63",function(value,element){			 return this.optional(element) || /^[0-9]{1,6}(/./d{1,3})$/.test(value);			},$.validator.format("請輸入合法數字,精度格式123456.0")			);									jQuery.validator.addMethod("postcodeVal",function(value,element){			 return this.optional(element) || /^[0-9]/d{5}(?!/d)$/.test(value);			},$.validator.format("請輸入合法的郵編")			);						jQuery.validator.addMethod("numberAndLettersVal",function(value,element){			 return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value);			},$.validator.format("請輸入字母或數字")			);												jQuery.validator.addMethod("sfzhValidate",function(value,element){			 return this.optional(element) || /^(/d{14}|/d{17})(/d|[xX])$/.test(value);			},$.validator.format("請輸入合法身份證號")			);												jQuery.validator.addMethod("valiEnglish",function(value,element){			 return this.optional(element) || /^[a-zA-Z ]*$/.test(value);			},$.validator.format("請輸入字母或者空格")			);		});</script><body><form id="frm" name="frm" method="post" action=""><label>用 戶 名:  <input type="text" name="username" id="username" /></label> <p>  <label>郵    編 :<label></label></label>  <label>  <input type="text" name="postcode" id="postcode" />  <br />  </label> </p> <p><label>數   字 :   <input type="text" name="number" id="number" /> </label>  <br /><label>身份證號:  <input type="text" name="identifier" id="identifier" />  </label>    <label> <input type="button" name="clickme" id="clickme" value="click me" /> </label> </p></form></body></html>

這是一個完整的驗證示例,關于引入的代碼已經上傳,可以點擊下載
下面講解其中的重點方法:

 jQuery.validator.addMethod("byteMaxLength", function(value,					element, param) {				var length = value.length;				for ( var i = 0; i < value.length; i++) {					if (value.charCodeAt(i) > 127) {						length++;					}				}				return this.optional(element) || (length <= param);			}, $.validator.format("不能超過{0}個字節(一個中文字算2個字節)"));

jQuery.validator.addMethod() 方法,有三個參數,
第一個參數 :   “byteMaxLength”  是定義方法名,必須保證方法名唯一,是一個identifier標志。
第二個參數: 是下面這個回調(callback)函數:

function(value,	element, param) {				var length = value.length;				for ( var i = 0; i < value.length; i++) {					if (value.charCodeAt(i) > 127) {						length++;					}				}				return this.optional(element) || (length <= param);			}

回調函數有三個參數:

第一個:value ,是當前驗證的元素的值。
第二個: element  是當前被驗證的元素。
第三個:是傳入的參數,例如: min : 5  這個參數為5,   對于本方法調用的時候,例如:byteMaxLength:10  其中10為傳入參數。

這個方法的方法名為: byteMaxLength  回調函數如上,
回調函數的作用就是驗證輸入的為多少個字節,其中一個漢字代表兩個字符,字符為0-127的ASCII碼,其中有一句返回:
return  this.optional(element)   這個函數調用的意思是: 用于表單輸入值不為空時驗證,當field為空時,即element的值為空,this.optional(element) = true, 就是說該filed不是必填項,當不填時也通過驗證, 如果element的值不為空  this.optional(element) = false 就要根據  ||  后面的驗證來判斷返回為true 或false的目的,總結起來 this.optional(element) 就是為了說明  當前驗證的 field不是必填項。

第三個參數:  如下:

復制代碼 代碼如下:

$.validator.format("不能超過{0}個字節(一個中文字算2個字節)") 

這第三個參數可以直接是一個message 就是驗證的提示信息,  為了顯示函數的驗證的信息,這個參數也可以通過創建函數jQuery.validator.format(value)來顯示,其中 {0} 代表 該方法 的參數如果  方法調用如: byteMaxLength : 10  上面的輸入就是 不能超過10個字節,(一個中文字算兩個字節)

下面看一下這段代碼:

  $( "#frm" ).validate({      rules: {          username: {              required: true,              minlength: 4,              maxlength: 20,              byteMaxLength:20,              valiEnglish:true          },          postcode: {          	 postcodeVal:true          	},          number: {          	byteMaxLength:5,          	numFormat:5          	},          	identifier: {          	sfzhValidate:true	          }          	          	                },      messages: {          username: {              required: "請輸入用戶名4--20個英文字符",              minlength: $.format("Keep typing, at least {0} characters required!"),              maxlength: $.format("Whoa! Maximum {0} characters allowed!")          },          number: {          	  numFormat: $.format("請輸入{0}數字")          	}      }  }); 

首先這是一個方法調用

復制代碼 代碼如下:

$( "#frm" ).validate([options]) 

驗證選擇的表單,方法的參數是可選項,可以輸入0個或者鍵值對(key/value)
這個方法是為了 處理例如:submit , focus ,  keyup , blur, click 觸發驗證的,對象是整個表單的元素,或者是單個元素,使用rules和 messages 定義驗證的元素,使用errorClass, errorElement, wrapper, errorLabelContainer, errorContainer, showErrors, success, errorPlacement, highlight, unhighlight, and ignoreTitle去控制非法元素的錯誤信息顯示。

下面看 validate 的方法  rules();

返回 第一個選擇的元素的驗證的規則, 有若干種方式定義驗證規則。

rules 方法定義了基于id的驗證,

復制代碼 代碼如下:

  username: {
                           required: true,
                           minlength: 4,
                           maxlength: 20,
                           byteMaxLength:20,
                           valiEnglish:true
                   }

如上:其中,username為 id名, {}中為定義的驗證方法,就是這個id 的都需要哪些方法驗證,方法名就是上面講到的方法;

這樣就定義了。

messages中定義了 :

復制代碼 代碼如下:

  username: {
                           required: "請輸入用戶名4--20個英文字符",
                           minlength: $.format("Keep typing, at least {0} characters required!"),
                           maxlength: $.format("Whoa! Maximum {0} characters allowed!")
                   }


這個id中方法驗證錯誤提示信息。其中可以直接輸出message或者調用 $.format()方法。

上面的標準格式就是:

復制代碼 代碼如下:

var $params = {debug:false, rules:{}, messages:{}};
 $("#frm").validate($params);

rules{}中定義驗證規則的方法。 messages{}定義錯誤輸出。
以上為第一種方式:

第二種方式:和第一種基本差不多:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><script type="text/javascript" src="js/jquery-1.6.1.min.js"></script><script type="text/javascript" src="js/jquery.validate.js"></script><script type="text/javascript" src="js/jquery.metadata.js"></script><script type="text/javascript" src="js/messages_zh.js"></script><style type="text/css">	#frm label.error {		color: Red;	}</style></head><script type="text/javascript">$(document).ready(function(){  $("#clickme").click(function(){     alert("Hello World"); });   jQuery.validator.addMethod("byteMaxLength", function(value,					element, param) {				var length = value.length;				for ( var i = 0; i < value.length; i++) {					if (value.charCodeAt(i) > 127) {						length++;					}				}				return this.optional(element) || (length <= param);			}, $.validator.format("不能超過{0}個字節(一個中文字算2個字節)"));  jQuery.validator.addMethod("numFormat",function(value,element,param){			 return this.optional(element) || /^/d*$/.test(value);			},$.validator.format("請輸入數字{0}位以內")			);									 			//number(9,3)			jQuery.validator.addMethod("numFormat63",function(value,element){			 return this.optional(element) || /^[0-9]{1,6}(/./d{1,3})$/.test(value);			},$.validator.format("請輸入合法數字,精度格式123456.0")			);									jQuery.validator.addMethod("postcodeVal",function(value,element){			 return this.optional(element) || /^[0-9]/d{5}(?!/d)$/.test(value);			},$.validator.format("請輸入合法的郵編")			);						jQuery.validator.addMethod("numberAndLettersVal",function(value,element){			 return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value);			},$.validator.format("請輸入字母或數字")			);												jQuery.validator.addMethod("sfzhValidate",function(value,element){			 return this.optional(element) || /^(/d{14}|/d{17})(/d|[xX])$/.test(value);			},$.validator.format("請輸入合法身份證號")			);												jQuery.validator.addMethod("valiEnglish",function(value,element){			 return this.optional(element) || /^[a-zA-Z ]*$/.test(value);			},$.validator.format("請輸入字母或者空格")			);						$("#frm").validate();					check_infor();});function check_infor(){		 $("#username").attr("class","{byteMaxLength:22,valiEnglish:true}");  $("#postcode").attr("class","{byteMaxLength:6,postcodeVal:true}");      $("#number").attr("class","{byteMaxLength:6,numFormat:6}");  $("#identifier").attr("class","{sfzhValidate:true}");	 			}</script><body><form id="frm" name="frm" method="post" action=""><label>用 戶 名:  <input type="text" name="username" id="username" /></label> <p>  <label>郵    編 :<label></label></label>  <label>  <input type="text" name="postcode" id="postcode" />  <br />  </label> </p> <p><label>數   字 :   <input type="text" name="number" id="number" /> </label>  <br /><label>身份證號:  <input type="text" name="identifier" id="identifier" />  </label>    <label> <input type="button" name="clickme" id="clickme" value="click me" /> </label> </p></form></body></html>

以上為第二種方式的代碼:其中:
方法定義和第一種一樣:在于調用:

復制代碼 代碼如下:

function check_infor(){
 
  $("#username").attr("class","{byteMaxLength:22,valiEnglish:true}");
   $("#postcode").attr("class","{byteMaxLength:6,postcodeVal:true}");
  
  
    $("#number").attr("class","{byteMaxLength:6,numFormat:6}");
    $("#identifier").attr("class","{sfzhValidate:true}");
 
 }


其中定義了一個javascript方法專門用于為form表單中需要驗證的id進行驗證:
其中用到了.attr()  方法:這個方法有很多種參數形式 .attr(attributeName,value)方法
attributeName為參數名:  value 為參數值
其中下面means 是為 id為username的 元素 的 class 屬性 添加值:

復制代碼 代碼如下:

"{byteMaxLength:22,valiEnglish:true}" 

復制代碼 代碼如下:

$("#username").attr("class","{byteMaxLength:22,valiEnglish:true}"); 

這樣該id元素就有了驗證。

注意: 在自定義的check_infor()調用之前 ,必須首先調用$("#frm").valudate();方法;

第三種方式:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><script type="text/javascript" src="js/jquery-1.6.1.min.js"></script><script type="text/javascript" src="js/jquery.validate.js"></script><script type="text/javascript" src="js/jquery.metadata.js"></script><script type="text/javascript" src="js/messages_zh.js"></script><style type="text/css">	#frm label.error {		color: Red;	}</style></head><script type="text/javascript">$(document).ready(function(){  $("#clickme").click(function(){     alert("Hello World"); });    jQuery.validator.addMethod("byteMaxLength", function(value,					element, param) {				var length = value.length;				for ( var i = 0; i < value.length; i++) {					if (value.charCodeAt(i) > 127) {						length++;					}				}				return this.optional(element) || (length <= param);			}, $.validator.format("不能超過{0}個字節(一個中文字算2個字節)"));   jQuery.validator.addMethod("numFormat",function(value,element,param){			 return this.optional(element) || /^/d*$/.test(value);			},$.validator.format("請輸入數字{0}位以內")			);									 			//number(9,3)			jQuery.validator.addMethod("numFormat63",function(value,element){			 return this.optional(element) || /^[0-9]{1,6}(/./d{1,3})$/.test(value);			},$.validator.format("請輸入合法數字,精度格式123456.0")			);									jQuery.validator.addMethod("postcodeVal",function(value,element){			 return this.optional(element) || /^[0-9]/d{5}(?!/d)$/.test(value);			},$.validator.format("請輸入合法的郵編")			);						jQuery.validator.addMethod("numberAndLettersVal",function(value,element){			 return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value);			},$.validator.format("請輸入字母或數字")			);												jQuery.validator.addMethod("sfzhValidate",function(value,element){			 return this.optional(element) || /^(/d{14}|/d{17})(/d|[xX])$/.test(value);			},$.validator.format("請輸入合法身份證號")			);												jQuery.validator.addMethod("valiEnglish",function(value,element){			 return this.optional(element) || /^[a-zA-Z ]*$/.test(value);			},$.validator.format("請輸入字母或者空格")			);				 	$("#frm").validate();		$('#username').rules('add', { required: true, byteMaxLength:20,valiEnglish:true});        $('#postcode').rules('add', { postcodeVal:true});        $('#number').rules('add', { byteMaxLength:5,numFormat:5});        $('#identifier').rules('add', { sfzhValidate:true}); 		});</script><body><form id="frm" name="frm" method="post" action=""><label>用 戶 名:  <input type="text" name="username" id="username" /></label> <p>  <label>郵    編 :<label></label></label>  <label>  <input type="text" name="postcode" id="postcode" />  <br />  </label> </p> <p><label>數   字 :   <input type="text" name="number" id="number" /> </label>  <br /><label>身份證號:  <input type="text" name="identifier" id="identifier" />  </label>    <label> <input type="button" name="clickme" id="clickme" value="click me" /> </label> </p></form></body></html>


第三種方式與其他兩種方式不同的地方就是:

復制代碼 代碼如下:

                $('#username').rules('add', { required: true,  byteMaxLength:20,valiEnglish:true});
                $('#postcode').rules('add', { postcodeVal:true});
                $('#number').rules('add', { byteMaxLength:5,numFormat:5});
                $('#identifier').rules('add', { sfzhValidate:true});


為每一個單獨的元素添加驗證規則。其中調用了rules( "add", rules )方法:
增加驗證規則為匹配的元素。
注意:$("form").validate()方法必須首先被調用。
這個規則也能包含一個messages-object,定義常用的messages。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线观看免费高清完整版| 日日噜噜噜夜夜爽亚洲精品| 欧美日韩激情美女| 一区二区三区无码高清视频| 一区二区日韩精品| 国产精品福利网| 成人黄色中文字幕| 日韩av在线高清| 97国产真实伦对白精彩视频8| 91色在线观看| 一本色道久久综合亚洲精品小说| www.日韩视频| 色阁综合伊人av| 91久久久亚洲精品| 久久精品青青大伊人av| 国产成人亚洲综合91| 国产精品日韩av| 亚洲网站在线观看| 国产va免费精品高清在线| 日韩av在线高清| 91免费观看网站| 久久成人综合视频| 91九色单男在线观看| 日韩高清人体午夜| 91久久久久久久一区二区| 成人黄在线观看| 国内揄拍国内精品少妇国语| 亚洲一区二区三区四区在线播放| 91精品国产免费久久久久久| 91精品国产777在线观看| 91在线高清免费观看| 欧美精品精品精品精品免费| 国内成人精品视频| 日韩美女主播视频| 亚洲色图五月天| xxx一区二区| 国产精品欧美一区二区三区奶水| 日韩精品在线播放| 色妞在线综合亚洲欧美| 亚洲男人天堂2023| 91在线直播亚洲| 全亚洲最色的网站在线观看| 美女啪啪无遮挡免费久久网站| 欧美成人精品在线视频| 欧美在线视频观看| 夜夜嗨av一区二区三区免费区| 成人动漫网站在线观看| 亚洲精品日韩av| 亚洲美女性生活视频| 黄色成人av网| 亚洲天堂av电影| 欧美孕妇孕交黑巨大网站| 久热精品视频在线观看| 日韩av在线网址| 中文字幕欧美视频在线| 欧美大片在线免费观看| 精品久久久久久久久久久久久久| 色噜噜狠狠色综合网图区| 最近2019中文字幕mv免费看| 韩国一区二区电影| 国产视频精品自拍| 亚洲天堂成人在线| 国产欧美一区二区三区在线| 色婷婷久久av| 久久久国产精彩视频美女艺术照福利| 亚洲专区中文字幕| 国产欧美欧洲在线观看| 国产精品网站入口| 日韩小视频网址| 亚洲欧美激情精品一区二区| 亚洲欧美国产精品久久久久久久| 日本伊人精品一区二区三区介绍| 狠狠爱在线视频一区| 国产精品亚洲视频在线观看| 日韩精品日韩在线观看| 高清一区二区三区四区五区| 91情侣偷在线精品国产| 国产日韩精品在线播放| 国产免费一区二区三区在线观看| 日日噜噜噜夜夜爽亚洲精品| 97国产成人精品视频| 成人久久18免费网站图片| 日韩69视频在线观看| 亚洲精品资源美女情侣酒店| 久久亚洲综合国产精品99麻豆精品福利| www日韩欧美| 欧美一级在线亚洲天堂| 国产精品第100页| 国产精品成人免费电影| 88xx成人精品| 欧美激情亚洲激情| 亚洲国产成人精品久久| 欧美洲成人男女午夜视频| 亚洲国产精品小视频| 亚洲免费精彩视频| 精品国产一区二区在线| 国产免费一区二区三区香蕉精| 国产精品视频中文字幕91| 亚洲美女视频网站| 亚洲欧洲日产国码av系列天堂| 欧美大片va欧美在线播放| 北条麻妃一区二区三区中文字幕| 一区二区在线免费视频| 久久久人成影片一区二区三区| 成人免费直播live| 国产福利精品在线| 91精品国产乱码久久久久久蜜臀| 一区二区福利视频| 日韩av快播网址| 欧美多人爱爱视频网站| 日韩国产高清视频在线| 欧美精品在线观看91| 97色在线观看| 精品无人区乱码1区2区3区在线| 欧美午夜宅男影院在线观看| 久久久久久国产免费| 亚洲欧美精品中文字幕在线| 亚洲欧美中文日韩v在线观看| 久久影视三级福利片| 日本久久亚洲电影| 欧美亚洲国产日韩2020| 亚洲精品乱码久久久久久按摩观| 精品调教chinesegay| 亚洲欧美国产视频| 中文字幕欧美精品日韩中文字幕| 91精品国产99久久久久久| 中文字幕v亚洲ⅴv天堂| 欧美一级片在线播放| 精品久久久精品| 国产午夜精品全部视频在线播放| 久久在线免费观看视频| 国产精品视频播放| 亚洲色图美腿丝袜| 亚洲日本欧美日韩高观看| 亚洲综合自拍一区| 国产综合久久久久久| 91九色视频导航| 欧美洲成人男女午夜视频| 久久国产精品免费视频| 亚洲成人激情在线观看| 久久久精品中文字幕| 欧美精品久久久久久久| 97在线视频免费| 国产91在线高潮白浆在线观看| 高潮白浆女日韩av免费看| 欧美成人黑人xx视频免费观看| 国产99在线|中文| 日韩精品视频在线| 美日韩精品免费视频| 国产午夜精品理论片a级探花| 欧美另类极品videosbest最新版本| 欧美超级乱淫片喷水| 成人国产精品日本在线| 欧美大尺度电影在线观看| 国产精欧美一区二区三区| 日本久久精品视频| 日韩在线免费视频| 日韩电影中文 亚洲精品乱码| 亚洲精品99久久久久| 久久伊人免费视频| 57pao国产成人免费| 国产精品第七十二页| 国产午夜精品理论片a级探花| 亚洲国产日韩欧美在线图片|