본문 바로가기
Language/web

[JQuery] jQuery Validation Plugin 사용하기

by 애기 개발자 2021. 12. 14.
반응형

웹 프로그래밍을 함에 있어서  ID 혹은 PW를 확인하는데 있어서 유효성 검증은 반드시 필요한 작업이다.

 

이를 쉽게 도와주는 기능인  JQuery의 Validation Plugin을 사용하면 쉽게 표시할 수 있다.

 

<script>
var validator = $("#checkform").validate({
rules: {
id: {
required: true,
minlength: 5
},
pw: {
required: true,
rangelength: [8, 16]
}
},
messages: {
id: {
required: "필수 입력 항목입니다.",
minlength: "최소 {0}글자 이상이어야 합니다."
},
pw: {
required: "필수 입력 항목입니다.",
rangelength: "{0}글자 이상 {1} 글자 이하 입력 해주시기 바랍니다."
}
},
//errorPlacement는 필요에 따라 사용
errorPlacement: function(error, element) {
$( element ).closest( "form" ).find( "small[for='" + element.attr( "id" ) + "']" ).append( error );
},
//위와 같이 필요에 따라 사용
onfocusout: function(element) {
$(element).valid();
},
submitHandler: function(form) {
/*필요에 따라 ajax를 이용한 submit 가능*/
}
});
</script>
<div>
<form id="checkform" method="post">
<label>ID</label>
<div>
<input id="id" name="id" type="text" />
</div>
<small for="id" style="color:red;"></small>
<label>PW</label>
<div>
<input id="pw" name="pw" type="text" />
</div>
<small for="pw" style="color:red;"></small>
</form>
</div>

위와 같이 코드를 작성할 수있다.

 

실행 하면

 

(해당 이미지는 예시입니다. 위 코드와 css가 일부 다릅니다.)

 

 

이러한 형태로 나타낼 수 있다.

 

기본적으로 사용 가능한 validation method는 다음과 같다.

 

required: "필수 항목입니다.",
remote: "항목을 수정하세요.",
email: "유효하지 않은 E-Mail주소입니다.",
url: "유효하지 않은 URL입니다.",
date: "올바른 날짜를 입력하세요.",
dateISO: "올바른 날짜(ISO)를 입력하세요.",
number: "유효한 숫자가 아닙니다.",
digits: "숫자만 입력 가능합니다.",
creditcard: "신용카드 번호가 바르지 않습니다.",
equalTo: "같은 값을 다시 입력하세요.",
extension: "올바른 확장자가 아닙니다.",
maxlength: "{0}자를 넘을 수 없습니다. ",
minlength: "{0}자 이상 입력하세요.",
rangelength: "문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요.",
range: "{0} 에서 {1} 사이의 값을 입력하세요.",
max: "{0} 이하의 값을 입력하세요.",
min: "{0} 이상의 값을 입력하세요.",
customValidation: "임의의 형식에 맞지 않습니다."

 

여기서 가장 마지막 "customValidation"  은 개발자가 임의로 형식을 만들어서  유효성 검사가 가능 하다는 것이다.

 

예를 들어서

어떠한 사용자의 MAC 주소를 인증 받고 싶다면

 

$.validator.addMethod('customValidation', function (value, element) {
var pattern1 = /[0-9A-Z][0-9A-Z]-[0-9A-Z][0-9A-Z]-[0-9A-Z][0-9A-Z]-[0-9A-Z][0-9A-Z]-[0-9A-Z][0-9A-Z]-[0-9A-Z][0-9A-Z]/;
if ( pattern1.test(value) == false || value.length != 17) {
return false;
}
return true;
});

위의 방식으로 정규식 체크를 통해 개발자가 추가하고싶은대로 추가할 수 있다.

 

반응형

댓글