validate_expand.js
//字符驗證
jQuery.validator.addMethod("stringCheck", function(value, element) {
return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.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個字節)");
//身份證號碼驗證
jQuery.validator.addMethod("isIdCardNo", function(value, element) {
return this.optional(element) || isIdCardNo(value);
}, "請正確輸入您的身份證號碼");
//手機號碼驗證
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));
}, "請正確填寫您的電話號碼");
//聯系電話(手機/電話皆可)驗證
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));
}, "請正確填寫您的郵政編碼");
initValidatorjs (異步驗證用戶名,手機號碼,驗證碼,擴展驗證)
/**
* @author Administrator
*/
function initValidator(base){
//異步驗證用戶名
jQuery.validator.addMethod("checkUserName", function(value, element){
var result = false;
// 設置同步
$.ajaxSetup({
async: false
});
var param = {
userName: value
};
$.post(base + "/checkUserName.do", param, function(data){
result = (1 == data);
});
// 恢復異步
$.ajaxSetup({
async: true
});
return result;
}, "用戶名已經存在");
//異步驗證手機號碼
jQuery.validator.addMethod("checkSms", function(value, element){
var result = false;
// 設置同步
$.ajaxSetup({
async: false
});
var param = {
sms: value
};
$.post(base + "/checkSms.do", param, function(data){
result = (0 == data);
});
// 恢復異步
$.ajaxSetup({
async: true
});
return result;
}, "手機號碼已經存在");
//異步驗證驗證碼
jQuery.validator.addMethod("checkCode", function(value, element){
var result = false;
// 設置同步
$.ajaxSetup({
async: false
});
var param = {
userCode: value
};
$.post(base + "/checkCode.do", param, function(data){
result = (1 == data);
});
// 恢復異步
$.ajaxSetup({
async: true
});
return result;
}, "驗證碼不正確");
$("#thisFrom").validate({
//設置驗證規則
rules: {
"userName": {
required: true,
userNameCheck: true,
checkUserName: true
},
"passWord": {
required: true,
rangelength: [6, 12]
},
"passWordAgain": {
required: true,
rangelength: [6, 12],
equalTo: "#passWord"
},
"corpName": {
required: true
},
"products": {
required: true
},
"name": {
required: true
},
"sms": {
required: true,
isMobile: true,
checkSms: true
},
"userCode": {
required: true,
checkCode:true
}
},
//設置錯誤信息
messages: {
"userName": {
required: "請輸入用戶名",
userNameCheck: "請輸入4-20位字母開頭的字母或數字和下划線",
checkUserName: "用戶名已經存在"
},
"passWord": {
required: "請輸入密碼",
rangelength: "密碼長度為6-12位"
},
"passWordAgain": {
required: "請再次輸入密碼",
rangelength: "密碼長度為6-12位",
equalTo: "兩次輸入密碼不相同"
},
"corpName": {
required: "請輸入公司名稱"
},
"name": {
required: "請輸入聯系人"
},
"products": {
required: "請輸入主營產品"
},
"sms": {
required: "請輸入手機號碼",
isMobile: "請輸入有效的手機號碼",
checkSms: "手機號碼已經存在"
},
"userCode": {
required: "請輸入驗證碼",
checkCode:"驗證碼不正確"
}
},
errorPlacement: function(error, element){
error.appendTo(element.parent("td").next("td"));
}
});
}
