jQuery.Validate驗(yàn)證庫的使用介紹
jQuery.Validate驗(yàn)證庫
1、下載jquery.validate,這里我提供jquery-validation-1.9.0,點(diǎn)擊下載
默認(rèn)校驗(yàn)規(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 必須輸入正確格式的日期
(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
默認(rèn)的提示
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代碼保存為:messages_cn.js,并在頁面中引用:
<script language="JavaScript" type="text/JavaScript" src="messages_cn.js"></script>
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.validator.format("請(qǐng)輸入一個(gè)長(zhǎng)度最多是 {0} 的字符串"),
minlength: jQuery.validator.format("請(qǐng)輸入一個(gè)長(zhǎng)度最少是 {0} 的字符串"),
rangelength: jQuery.validator.format("請(qǐng)輸入一個(gè)長(zhǎng)度介于 {0} 和 {1} 之間的字符串"),
range: jQuery.validator.format("請(qǐng)輸入一個(gè)介于 {0} 和 {1} 之間的值"),
max: jQuery.validator.format("請(qǐng)輸入一個(gè)最大為 {0} 的值"),
min: jQuery.validator.format("請(qǐng)輸入一個(gè)最小為 {0} 的值")
});
使用方式
1、將校驗(yàn)規(guī)則寫到控件中
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script language="JavaScript" type="text/JavaScript" src="jquery-1.6.1.js"></script>
<script language="JavaScript" type="text/JavaScript" src="jquery.validate.min.js"></script>
<script language="JavaScript" type="text/JavaScript" src="jquery.metadata.js"></script>
<script>
$().ready(function() {
$("#signupForm").validate();
});
</script>
<form id="signupForm" method="get" action="">
<p>
<label for="firstname">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">Password</label>
<input id="password" name="password" type="password" class="{required:true,minlength:5}" />
</p>
<p>
<label for="confirm_password">確認(rèn)密碼</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>
使用class="{}"的方式,必須引入包:jquery.metadata.js
可以使用如下的方法,修改提示內(nèi)容
<input id="firstname" name="firstname" class="{required:true,minlength:5,messages:{required:'請(qǐng)輸入內(nèi)容'}}" />
上面代碼表示:如果firstname域不填寫任何內(nèi)容,則提示:請(qǐng)輸入內(nèi)容。那么,如果填寫的內(nèi)容長(zhǎng)度小于5的話,提示用戶,該如何寫呢?請(qǐng)看下面代碼:
<input id="firstname" name="firstname" class="{required:true,minlength:5,messages:{required:'請(qǐng)輸入內(nèi)容',minlength:'字符串長(zhǎng)度不能小于5'}}" />
注意:在使用equalTo關(guān)鍵字時(shí),后面的內(nèi)容必須加上引號(hào),如下代碼:
class="{required:true,minlength:5,equalTo:'#password'}"
另外一個(gè)方式,使用關(guān)鍵字:meta
例如,將上面示例中的代碼改為關(guān)鍵字meta形式,代碼如下:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script language="JavaScript" type="text/JavaScript" src="jquery-1.6.1.js"></script>
<script language="JavaScript" type="text/JavaScript" src="jquery.validate.min.js"></script>
<script language="JavaScript" type="text/JavaScript" src="jquery.metadata.js"></script>
<script>
$().ready(function() {
$("#signupForm").validate({meta: "validate"});
});
</script>
<form id="signupForm" method="get" action="">
<p>
<label for="firstname">Firstname</label>
<input id="firstname" name="firstname" class="{validate:{required:true,minlength:5,messages:{required:'請(qǐng)輸入內(nèi)容',minlength:'字符串長(zhǎng)度不能小于5'}}}" />
<p>
<label for="email">E-Mail</label>
<input id="email" name="email" class="{validate:{required:true, email:true}}" />
</p>
<p>
<label for="password">Password</label>
<input id="password" name="password" type="password" class="{validate:{required:true,minlength:5}}" />
</p>
<p>
<label for="confirm_password">確認(rèn)密碼</label>
<input id="confirm_password" name="confirm_password" type="password" class="{validate:{required:true,minlength:5,equalTo:'#password'}}" />
</p>
<p>
<input class="submit" type="submit" value="Submit"/>
</p>
</form>
注意:
規(guī)則部分應(yīng)用完整形式,如下所示:
正確寫法:
<input id="email" name="email" class="{validate:{required:true, email:true}}" />
錯(cuò)誤寫法:
<input id="email" name="email" class="{validate:{required email}}" />
再有一種方式
$.metadata.setType("attr", "validate");
這樣可以使用validate="{required:true}"的方式,或者class="required",但class="{required:true,minlength:5}"將不起作用
例如,將上面示例代碼改為:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script language="JavaScript" type="text/JavaScript" src="jquery-1.6.1.js"></script>
<script language="JavaScript" type="text/JavaScript" src="jquery.validate.min.js"></script>
<script language="JavaScript" type="text/JavaScript" src="jquery.metadata.js"></script>
<script>
$().ready(function() {
$.metadata.setType("attr", "validate");
$("#signupForm").validate();
});
</script>
<form id="signupForm" method="get" action="">
<p>
<label for="firstname">Firstname</label>
<input id="firstname" name="firstname" validate="{required:true}" />
<p>
<label for="email">E-Mail</label>
<input id="email" name="email" validate="{required:true, email:true}" />
</p>
<p>
<label for="password">Password</label>
<input id="password" name="password" type="password" validate="{required:true,minlength:5}" />
</p>
<p>
<label for="confirm_password">確認(rèn)密碼</label>
<input id="confirm_password" name="confirm_password" type="password" validate="{required:true,minlength:5,equalTo:'#password'}" />
</p>
<p>
<input class="submit" type="submit" value="Submit"/>
</p>
</form>
注意:規(guī)則部分應(yīng)用完整形式,即
正確寫法:
<input id="email" name="email" validate="{required:true, email:true}" />
錯(cuò)誤寫法:
<input id="email" name="email" validate="{required email}" />
2、將校驗(yàn)規(guī)則寫到代碼中
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script language="JavaScript" type="text/JavaScript" src="jquery-1.6.1.js"></script>
<script language="JavaScript" type="text/JavaScript" src="jquery.validate.min.js"></script>
<script language="JavaScript" type="text/JavaScript" src="jquery.metadata.js"></script>
<script>
$().ready(function() {
$("#signupForm").validate({
rules:
{
firstname: "required",
email:
{
required: true,
email: true
},
password:
{
required: true,
minlength: 5
},
confirm_password:
{
required: true,
minlength: 5,
equalTo: "#password"
}
},
messages:
{
firstname: "請(qǐng)輸入姓名",
email:
{
required: "請(qǐng)輸入Email地址",
email: "請(qǐng)輸入正確的email地址"
},
password:
{
required: "請(qǐng)輸入密碼",
minlength: jQuery.format("密碼不能小于{0}個(gè)字符")
},
confirm_password:
{
required: "請(qǐng)輸入確認(rèn)密碼",
minlength: "確認(rèn)密碼不能小于5個(gè)字符",
equalTo: "兩次輸入密碼不一致不一致"
}
}
});
});
//messages處,如果某個(gè)控件沒有message,將調(diào)用默認(rèn)的信息
</script>
<form id="signupForm" method="get" action="">
<p>
<label for="firstname">Firstname</label>
<input id="firstname" name="firstname" />
</p>
<p>
<label for="email">E-Mail</label>
<input id="email" name="email" />
</p>
<p>
<label for="password">Password</label>
<input id="password" name="password" type="password" />
</p>
<p>
<label for="confirm_password">確認(rèn)密碼</label>
<input id="confirm_password" name="confirm_password" type="password" />
</p>
<p>
<input class="submit" type="submit" value="Submit"/>
</p>
</form>
required:true 必須有值
required:"#aa:checked"id名稱為aa的dom被選中時(shí),則需要驗(yàn)證
required:function(){} 返回為真,表示需要驗(yàn)證(僅針對(duì)required有效,其它無效。)
后邊兩種常用于,表單中需要同時(shí)填或不填的元素
下面針對(duì)上面三項(xiàng)內(nèi)容,通過實(shí)例來說明一下,更易于理解。(第一個(gè)說明:required:true 必須有值 這項(xiàng)就不在舉例了,通過上面的示例,已經(jīng)非常清楚。)
required:"#aa:checked" 的示例如下:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script language="JavaScript" type="text/JavaScript" src="jquery-1.6.1.js"></script>
<script language="JavaScript" type="text/JavaScript" src="jquery.validate.min.js"></script>
<script language="JavaScript" type="text/JavaScript" src="jquery.metadata.js"></script>
<script>
$().ready(function() {
$("#signupForm").validate({
rules:
{
firstname: "required",
email:
{
required: "#open:checked",
email: true
}
},
messages:
{
firstname: "請(qǐng)輸入姓名",
email:
{
required: "請(qǐng)輸入Email地址",
email: "請(qǐng)輸入正確的email地址"
}
}
});
});
//messages處,如果某個(gè)控件沒有message,將調(diào)用默認(rèn)的信息
</script>
<form id="signupForm" method="get" action="">
<p>
開關(guān):
<input id="open" name="open" type="radio" />
<label for="open">打開</label>
<input id="close" name="close" type="radio" />
<label for="close">關(guān)閉</label>
</p>
<p>
<label for="email">E-Mail</label>
<input id="email" name="email" />
</p>
<p>
<input class="submit" type="submit" value="Submit"/>
</p>
</form>
當(dāng)選中“打開”時(shí),則對(duì)email進(jìn)行驗(yàn)證。
required:function(){}的示例如下:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script language="JavaScript" type="text/JavaScript" src="jquery-1.6.1.js"></script>
<script language="JavaScript" type="text/JavaScript" src="jquery.validate.min.js"></script>
<script language="JavaScript" type="text/JavaScript" src="jquery.metadata.js"></script>
<script>
$().ready(function() {
$("#signupForm").validate({
rules:
{
firstname: "required",
email:
{
required: function()
{
return true;
},
email: function()
{
return false;
}
}
},
messages:
{
firstname: "請(qǐng)輸入姓名",
email:
{
required: "請(qǐng)輸入Email地址",
email: "請(qǐng)輸入正確的email地址"
}
}
});
});
//messages處,如果某個(gè)控件沒有message,將調(diào)用默認(rèn)的信息
</script>
<form id="signupForm" method="get" action="">
<p>
開關(guān):
<input id="open" name="open" type="radio" />
<label for="open">打開</label>
<input id="close" name="close" type="radio" />
<label for="close">關(guān)閉</label>
</p>
<p>
<label for="email">E-Mail</label>
<input id="email" name="email" />
</p>
<p>
<input class="submit" type="submit" value="Submit"/>
</p>
</form>
經(jīng)過測(cè)試得知,即使email:function(){return false}); 是返回false,但是required:function(){return true;},是返回true,那么,除了驗(yàn)證是否為空外,還驗(yàn)證email格式。也就是說email:function(){reuturn false;}設(shè)置無效。進(jìn)一步測(cè)試,去掉required:function(){return true;},只保留:email:function(){reuturn false;},仍然驗(yàn)證email格式。代碼如下:
$("#signupForm").validate({
rules:
{
firstname: "required",
email:
{
email: function()
{
return false;
}
}
},
messages:
......
注意:將校驗(yàn)規(guī)則單獨(dú)寫在文件中,如上面例子中的rules規(guī)則中的firstname,email等,問題是,在input中有id,又有name屬性,那JQuery Validation獲取哪個(gè)呢?通過測(cè)試,是獲取name屬性的。所以,rules中的key,是input的name屬性值,而不是id屬性值。
定義樣式代碼
/* jQuery.Validate css */
input.error{border: 1px dotted red;}
label.error{
background-image:url('del.gif');
background-repeat:no-repeat;
padding-left:18px;
color: red;
}
input.error 定義input控件樣式
label.error 定義出錯(cuò)信息的樣式
如下圖所示:
- jquery.validate 自定義驗(yàn)證方法及validate相關(guān)參數(shù)
- 基于Bootstrap+jQuery.validate實(shí)現(xiàn)Form表單驗(yàn)證
- jquery.validate提示錯(cuò)誤信息位置方法
- jquery.validate使用時(shí)遇到的問題
- jQuery.validate 常用方法及需要注意的問題
- jquery.validate使用詳解
- jquery.validate的使用說明介紹
- 利用jQuery.Validate異步驗(yàn)證用戶名是否存在(推薦)
- 功能強(qiáng)大的jquery.validate表單驗(yàn)證插件
- jquery.validate自定義驗(yàn)證用法實(shí)例分析【成功提示與擇要提示】
相關(guān)文章
jquery 實(shí)現(xiàn)拖動(dòng)文件上傳加載進(jìn)度條功能
這篇文章主要介紹了jquery 實(shí)現(xiàn)拖動(dòng)文件上傳加載進(jìn)度條功能,主要用到的是HTML5的ondrop事件,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03jQuery web 組件 后臺(tái)日歷價(jià)格、庫存設(shè)置的代碼
這篇文章主要介紹了jQuery web 組件 后臺(tái)日歷價(jià)格、庫存設(shè)置的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10jquery 提示信息顯示后自動(dòng)消失的具體實(shí)現(xiàn)
讓提示信息顯示后自動(dòng)消失的方法有很多,在本文為大家介紹下使用jquery是如何做到的,感興趣朋友可以參考下2013-12-1213個(gè)絢麗的Jquery 界面設(shè)計(jì)網(wǎng)站推薦
今天共享一些令人振奮的UI教程,這些UI大部分是基于Jquery的插件,主要包括動(dòng)態(tài)切換視圖的相冊(cè)、3D旋轉(zhuǎn)分享按鈕、Facebook admin Panel,下滑效果的導(dǎo)航Menu,滑翔購物車功能,漂亮的Form表單元素等等。2010-09-09jQuery實(shí)現(xiàn)鼠標(biāo)滑過點(diǎn)擊事件音效試聽
本文給大家介紹jquery鼠標(biāo)滑過點(diǎn)擊事件音效試聽,使用jquery插件實(shí)現(xiàn)的特效,感興趣的朋友一起來學(xué)習(xí)吧。2015-08-08jQuery常用事件方法mouseenter+mouseleave+hover
這篇文章主要介紹了jQuery常用事件方法mouseenter、mouseleave和hover方法,下文內(nèi)容介紹詳細(xì),需要的小伙伴可以參考一下2022-03-03javascript基于jQuery的表格懸停變色/恢復(fù),表格點(diǎn)擊變色/恢復(fù),點(diǎn)擊行選Checkbox
jQuery的表格懸停變色 恢復(fù),表格點(diǎn)擊變色/恢復(fù),點(diǎn)擊行選Checkbox2008-08-08jQuery解析json數(shù)據(jù)實(shí)例分析
這篇文章主要介紹了jQuery解析json數(shù)據(jù)的具體實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了jQuery解析json格式數(shù)據(jù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11jquery實(shí)現(xiàn)簡(jiǎn)單下拉菜單效果
這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)簡(jiǎn)單下拉菜單效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04