//定義中文消息
var cnmsg = {
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} 的值」)
};
jQuery.extend(jQuery.validator.messages, cnmsg);php
(1)required:true 必輸字段
(2)remote:」check.php」 使用ajax方法調用check.php驗證輸入值
(3)email:true 必須輸入正確格式的電子郵件
(4)url:true 必須輸入正確格式的網址
(5)date:true 必須輸入正確格式的日期
(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 輸入值不能小於10git
addMethod(name,method,message)方法:
參數name 是添加的方法的名字
參數method是一個函數,接收三個參數(value,element,param) value 是元素的值,element是元素自己param
是參數,咱們能夠用addMethod 來添加除built-in Validation methods 以外的驗證方法好比有一個字段,只
能輸一個字母,範圍是a-f,寫法以下:ajax
$.validator.addMethod(「af」,function(value,element,params){
if(value.length>1){
return false;
}
if(value>=params[0]&&value<=params[1]){
return true;
}else{
return false;
}
},」必須是一個字母,且a-f」);
用的時候,好比有個表單字段的id=」username」,則在rules 中寫
username:{
af:["a","f"]
}
方法
addMethod 的第一個參數,就是添加的驗證方法的名子,這時是af
addMethod 的第三個參數,就是自定義的錯誤提示,這裏的提示爲:」必須是一個字母,且a-f」
addMethod 的第二個參數,是一個函數,這個比較重要,決定了用這個驗證方法時的寫法
若是隻有一個參數,直接寫,若是af:」a」,那麼a 就是這個惟一的參數,若是多個參數,用在[]裏,用逗號分開app
submitHandler: 經過驗證後運行的函數,裏面要加上表單提交的函 數,不然表單不會提交
$(".selector").validate({ submitHandler:function(form) { $(form).ajaxSubmit(); //用Jquery Form的函數 } })
.errorPlacement:Callback Default: 把錯誤信息放在驗證的元素後面
指明錯誤放置的位置,默認狀況是:error.appendTo(element.parent());即把錯誤信息放在驗證的元素後面
errorPlacement: function(error, element) {
error.appendTo(element.parent());
}dom
// 字符驗證
jQuery.validator.addMethod(「stringCheck」, function(value, element) {
return this.optional(element) || /^[u0391-uFFE5w]+$/.test(value);
}, 」只能包括中文字、英文字母、數字和下劃線」);函數
// 中文字兩個字節
jQuery.validator.addMethod(「byteRangeLength」, 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[0] && length <= param[1] );
}, 」請確保輸入的值在3-15個字節之間(一箇中文字算2個字節)」);ui
// 身份證號碼驗證
jQuery.validator.addMethod(「isIdCardNo」, function(value, element) {
return this.optional(element) || isIdCardNo(value);
}, 」請正確輸入您的身份證號碼」);this
// 手機號碼驗證
jQuery.validator.addMethod(「isMobile」, function(value, element) {
var length = value.length;
var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+d{8})$/;
return this.optional(element) || (length == 11 && mobile.test(value));
}, 」請正確填寫您的手機號碼」);編碼
// 電話號碼驗證
jQuery.validator.addMethod(「isTel」, function(value, element) {
var tel = /^d{3,4}-?d{7,9}$/; //電話號碼格式010-12345678
return this.optional(element) || (tel.test(value));
}, 」請正確填寫您的電話號碼」);url
// 聯繫電話(手機/電話皆可)驗證
jQuery.validator.addMethod(「isPhone」, function(value,element) {
var length = value.length;
var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+d{8})$/;
var tel = /^d{3,4}-?d{7,9}$/;
return this.optional(element) || (tel.test(value) || mobile.test(value));
}, 」請正確填寫您的聯繫電話」);
// 郵政編碼驗證
jQuery.validator.addMethod(「isZipCode」, function(value, element) {
var tel = /^[0-9]{6}$/;
return this.optional(element) || (tel.test(value));
}, 」請正確填寫您的郵政編碼」);
function isIdCardNo(num) {
var factorArr = newArray(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var parityBit=newArray(「1″,」0″,」X」,」9″,」8″,」7″,」6″,」5″,」4″,」3″,」2″);
var varArray = new Array();
var intValue;
var lngProduct = 0;
var intCheckDigit;
var intStrLen = num.length;
var idNumber = num;
// initialize
if ((intStrLen != 15) && (intStrLen!= 18)) {
return false;
}
// check and set value
for(i=0;i<intStrLen;i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < ’0′ || varArray[i]> ’9′) && (i != 17)){
return false;
} else if (i < 17) {
varArray[i] = varArray[i] * factorArr[i];
}
}
if (intStrLen == 18) {
//check date
var date8 = idNumber.substring(6,14);
if (isDate8(date8) == false) {
return false;
}
// calculate the sum of the products
for(i=0;i<17;i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = parityBit[lngProduct % 11];
// check last digit
if (varArray[17] != intCheckDigit) {
return false;
}
}
else{ //length is 15
//check date
var date6 = idNumber.substring(6,12);
if (isDate6(date6) == false) {
return false;
}
}
return true;
}
function isDate6(sDate) {
if(!/^[0-9]{6}$/.test(sDate)) {
return false;
}
var year, month, day;
year = sDate.substring(0, 4);
month = sDate.substring(4, 6);
if (year < 1700 || year > 2500)return false
if (month < 1 || month > 12) returnfalse
return true
}
function isDate8(sDate) {
if(!/^[0-9]{8}$/.test(sDate)) {
return false;
}
var year, month, day;
year = sDate.substring(0, 4);
month = sDate.substring(4, 6);
day = sDate.substring(6, 8);
var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
if (year < 1700 || year > 2500)return false
if (((year % 4 == 0) && (year % 100!= 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
if (month < 1 || month > 12) returnfalse
if (day < 1 || day >iaMonthDays[month - 1]) return false
return true
}
//身份證號碼驗證
jQuery.validator.addMethod(「idcardno」, function(value, element){
return this.optional(element) || isIdCardNo(value);
}, 「請正確輸入身份證號碼」);
//字母數字
jQuery.validator.addMethod(「alnum」, function(value, element){
return this.optional(element) ||/^[a-zA-Z0-9]+$/.test(value);
}, 「只能包括英文字母和數字」);
// 郵政編碼驗證
jQuery.validator.addMethod(「zipcode」, function(value, element){
var tel = /^[0-9]{6}$/;
return this.optional(element) || (tel.test(value));
}, 「請正確填寫郵政編碼」);
// 漢字
jQuery.validator.addMethod(「chcharacter」, function(value, element){
var tel = /^[u4e00-u9fa5]+$/;
return this.optional(element) || (tel.test(value));
}, 「請輸入漢字」);
// 字符最小長度驗證(一箇中文字符長度爲2)
jQuery.validator.addMethod(「stringMinLength」, 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(「stringMaxLength」, 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}!」));
// 字符驗證
jQuery.validator.addMethod(「string」, function(value, element){
return this.optional(element) ||/^[u0391-uFFE5w]+$/.test(value);
}, 「不容許包含特殊符號!」);
// 手機號碼驗證
jQuery.validator.addMethod(「mobile」, function(value, element){
var length = value.length;
return this.optional(element) || (length == 11&&/^(((13[0-9]{1})|(15[0-9]{1}))+d{8})$/.test(value));
}, 「手機號碼格式錯誤!」);
// 電話號碼驗證
jQuery.validator.addMethod(「phone」, function(value, element){
var tel = /^(d{3,4}-?)?d{7,9}$/g;
return this.optional(element) || (tel.test(value));
}, 「電話號碼格式錯誤!」);
// 郵政編碼驗證
jQuery.validator.addMethod(「zipCode」, function(value, element){
var tel = /^[0-9]{6}$/;
return this.optional(element) || (tel.test(value));
}, 「郵政編碼格式錯誤!」);
// 必須以特定字符串開頭驗證
jQuery.validator.addMethod(「begin」, function(value, element, param){
var begin = new RegExp(「^」 + param);
return this.optional(element) || (begin.test(value));
}, $.validator.format(「必須以 {0} 開頭!」));
// 驗證兩次輸入值是否不相同
jQuery.validator.addMethod(「notEqualTo」, function(value, element,param) {
return value != $(param).val();
}, $.validator.format(「兩次輸入不能相同!」));
//驗證值不容許與特定值等於
jQuery.validator.addMethod(「notEqual」, function(value, element,param) {
return value != param;
}, $.validator.format(「輸入值不容許爲{0}!」));
// 驗證值必須大於特定值(不能等於) jQuery.validator.addMethod(「gt」, function(value, element, param){ return value > param; }, $.validator.format(「輸入值必須大於{0}!」));