>  기사  >  웹 프론트엔드  >  jquery.validate 사용자 정의 유효성 검사 방법 및 관련 매개 변수 유효성 검사_jquery

jquery.validate 사용자 정의 유효성 검사 방법 및 관련 매개 변수 유효성 검사_jquery

WBOY
WBOY원래의
2016-05-16 15:19:351263검색

Jquery 관련 매개변수 유효성 검사

//定义中文消息
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);

맞춤 확인 검증

$(document).ready( function() {
/**
* 身份证号码验证
*
*/
function isIdCardNo(num) {
var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var parityBit=new Array("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;
}
/**
* 判断是否为“YYYYMM”式的时期
*
*/
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) return false
return true
}
/**
* 判断是否为“YYYYMMDD”式的时期
*
*/
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) return false
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-\uFFE5\w]+$/.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}-&#63;)&#63;\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}!"));
// 验证值小数位数不能超过两位
jQuery.validator.addMethod("decimal", function(value, element) {
var decimal = /^-&#63;\d+(\.\d{1,2})&#63;$/;
return this.optional(element) || (decimal.test(value));

jQuery.validate 사용법

2010년 4월 12일 월요일 14:33

이름 반환 유형 설명

validate(options) 반환: 선택한 FORM을 확인하는 유효성 검사기

valid() 반환: 확인이 통과되었는지 확인하는 부울

rules() 반환: 옵션 요소의 유효성 검사 규칙을 반환합니다

rules(add,rules) 반환: 확인 규칙을 추가하는 옵션

규칙(제거,규칙)

jquery.validate는 jquery를 기반으로 한 매우 뛰어난 검증 프레임워크입니다. 이를 통해 몇 가지 일반적인 입력을 신속하게 검증할 수 있으며 자체 검증 방법을 확장할 수도 있습니다.

jquery.validate 공식 웹사이트: http://bassistance.de/jquery-plugins/jquery-plugin-validation/

사용법:

1. 먼저 jquery.js와 jquery.validate.js를 다운로드하고 js 파일을 가져옵니다. (참고: jquery.validate.js보다 먼저 jquery를 도입해야 합니다. 그렇지 않으면 오류가 보고됩니다.)

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

2. 인증이 필요한 폼코드를 작성하고 인증코드를 작성합니다. (인증코드를 작성하는 방법은 2가지가 있으며, 먼저 일반적인 방법을 사용합니다.)

var validator = $("formId").validate({// #formId为需要进行验证的表单ID
errorElement :"div",// 使用"div"标签标记错误, 默认:"label"
wrapper:"li",// 使用"li"标签再把上边的errorELement包起来
errorClass :"validate-error",// 错误提示的css类名"error"
onsubmit:true,// 是否在提交是验证,默认:true
onfocusout:true,// 是否在获取焦点时验证,默认:true
onkeyup :true,// 是否在敲击键盘时验证,默认:true
onclick:false,// 是否在鼠标点击时验证(一般验证checkbox,radiobox)
focusCleanup:false,// 当未通过验证的元素获得焦点时,并移除错误提示
rules: {
loginName: {// 需要进行验证的输入框name
required: true// 验证条件:必填
},
loginPassword: {// 需要进行验证的输入框name
required: true,// 验证条件:必填
minlength: 5// 验证条件:最小长度为5
},
email: {// 需要进行验证的输入框name
required: true,// 验证条件:必填
email: true// 验证条件:格式为email
}
},
messages: {
loginName: {
required: "用户名不允许为空!"// 验证未通过的消息
},
loginPassword: {
required: "密码不允许为空!",
minlength: jQuery.format("密码至少输入 {0} 字符!")
},
email: {
required: "email不允许为空",
email: "邮件地址格式错误!"
}
}

2. 검증을 위해 메타 스트링 메소드를 사용합니다. 즉, 내용을 검증하고 클래스에 작성합니다. (메타 스트링 메소드를 사용하려면 jquery.metadata.js 파일 도입이 필요합니다.)

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.metadata.js"></script>
<script type="text/javascript" src="jquery.validate.js"></script>
<form id="validate" action="admin/transfer!save.action" method="post">
<input type="text" class="required" name="entity.name" />
<input type="text" class="email" name="entity.email" />
<input type="submit" class="button" value="提 交" />
</form>
<script type="text/javascript">
$(document).ready(
function() {
$("#formId").validate({// #formId为需要进行验证的表单ID
meta :"validate"// 采用meta String方式进行验证(验证内容与写入class中)
errorElement :"div",// 使用"div"标签标记错误, 默认:"label"
wrapper:"li",// 使用"li"标签再把上边的errorELement包起来
errorClass :"validate-error",// 错误提示的css类名"error"
onsubmit:true,// 是否在提交是验证,默认:true
onfocusout:true,// 是否在获取焦点时验证,默认:true
onkeyup :true,// 是否在敲击键盘时验证,默认:true
onclick:false,// 是否在鼠标点击时验证(一般验证checkbox,radiobox)
focusCleanup:false,// 当未通过验证的元素获得焦点时,并移除错误提示
});
})
</script>

참고: Struts2 애플리케이션에서는 name="entity.name"(즉, 이름에 쉼표나 기타 특수 기호가 포함된 경우) 형식의 입력 양식이 자주 표시됩니다. 위의 이름을 따옴표로 묶을 수 있습니다( "") 다음과 같습니다.

rules: {
"entity.loginName": {// 需要进行验证的输入框name
required: true// 验证条件:必填
}
},
messages: {
"entity.loginName": {
required: "用户名不允许为空!"// 验证未通过的消息
}
}

happyczx@126.com으로 이메일을 보내주세요. Java 기술과 관련된 문제에 대해 함께 토론하실 수 있습니다

위 코드의 일부는 payj 오픈 소스 결제 시스템에서 가져온 것입니다. 이 Java 오픈 소스 프로젝트에는 살펴볼 가치가 있는 Struts2 spring hibernate jquery 및 기타 프레임워크의 우수한 애플리케이션 소스 코드가 많이 포함되어 있습니다. 우선 여기를 추천드리고 싶습니다. 하하. . .

ps: Jquery 검증 규칙

(1)필수:true 필수 필드
(2)원격:”check.php” ajax 메소드를 사용하여 check.php를 호출하여 입력값을 확인합니다
(3)email:true 이메일을 올바른 형식으로 입력해야 합니다
(4)url:true URL을 올바른 형식으로 입력해야 합니다
(5)date:true 날짜를 올바른 형식으로 입력해야 합니다
(6)dateISO:true 날짜(ISO)를 올바른 형식으로 입력해야 합니다. 예: 2009-06-23, 1998/01/22 형식만 확인되며 유효성은 확인되지 않습니다
(7)number:true 유효한 숫자(음수, 소수)를 입력해야 합니다
(8)digits:true는 정수를 입력해야 합니다
(9)신용카드 : 적법한 신용카드 번호를 입력해야 합니다
(10)equalTo:”#field” 입력값은 #field
와 동일해야 합니다. (11)accept: 법적 접미사(업로드된 파일의 접미사)가 포함된 문자열을 입력하세요.
(12)maxlength:5 최대 5자까지의 문자열을 입력하세요. (한자는 1자로 계산됩니다.)
(13)minlength:10 최소 10자 이상의 문자열을 입력하세요. (한자는 1자로 계산됩니다.)
(14)rangelength:[5,10] 입력 길이는 5~10" 사이여야 합니다. (한자는 1자로 계산됩니다.)
(15)range:[5,10] 입력 값은 5에서 10 사이여야 합니다
(16)max:5 입력값은 5보다 클 수 없습니다
(17)min:10 입력값은 10보다 작을 수 없습니다

Jquery 유효성 검사 제출 제출

submitHandler: 검증 통과 후 실행되는 함수에는 양식 제출 기능이 포함되어야 합니다. 그렇지 않으면 양식이 제출되지 않습니다.
$(".selector").validate({ submitHandler:function(form) { $(form).ajaxSubmit(); //Jquery Form 함수 사용 } })

Jquery 유효성 검사 오류 오류 프롬프트 dom

.errorPlacement: 콜백 기본값: 검증된 요소 뒤에 오류 메시지를 넣습니다.
오류가 있는 위치를 지정합니다. 기본값은 error.appendTo(element.parent())입니다. 즉, 오류 메시지는 확인된 요소
뒤에 배치됩니다.

errorPlacement: function(error, element) {
error.appendTo(element.parent());
}

오류 프롬프트 스타일을 설정하고 다음과 같은 아이콘 표시를 추가할 수 있습니다.

input.error { border: 1px solid red; }
label.error {
background:url(“./demo/images/unchecked.gif”) no-repeat 0px 0px;
padding-left: 16px;
padding-bottom: 2px;
font-weight: bold;
color: #EA5200;
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.