2022. 5. 26. 09:32ㆍ[프론트엔드]_/[JQuery]_
공식문서 :https://jqueryvalidation.org/
프로그램을 짜면서 데이터 검증은 필수적입니다.
JQuery 플러그인 중 validate 검증 플러그인을 사용했습니다.
JQuery 플러그인이기 때문에 순서는 jquery부터 받아와야 합니다.
<script src="/resources/app/js/jquery-3.4.1.min.js" type="text/javascript"></script>
그 후에 vaildate 스크립트가 옵니다.
<script type="text/javascript" src="/resources/js/jquery.validate.min.js"></script>
만약 커스텀해서 사용한다면 해당 경로를 스크립트 합니다. ※경로는 해당 파일 위치입니다.
<script type="text/javascript" src="/resources/js/jquery.vaildate.custom.js"></script>
script 에서 등록버튼과 같은 이벤트 작동시 아래와 같은 양식을 사용합니다.
#frmRequest => form 데이터
($('#frmRequest').valid())
해당 jsp 파일의 script 단 에서 바로 검증을 해서 메시지를 출력 할 수 있습니다.
let validator = $('#frmRequest').validate({
를 선언하여 form 데이터의 검증을 실시합니다.
validate 설정은 다음과 같습니다.
let validator = $('#frmRequest').validate({
ignore: '',
invalidHandler: function (form, validator) {
let errors = validator.numberOfInvalids();
if (errors) {
let titles = validator.errorList.map(function (obj) {
return obj.element.dataset.title
}).join(', ');
let msg = `필수 입력 정보를 모두 입력해 주세요.<br/>미입력 사항 : \${titles}`;
common.alert(msg, function () {
validator.errorList[0].element.focus();
});
}
}
});
검증할 form 데이터에 validate() 를 통해 시작합니다.
ignore : 검증을 제외할 엘리먼트 요소입니다.
함수는 2가지가 있습니다.
submitHandle > 커스텀코드를 작성할 수 있는 콜백함수입니다. 유효성 여부를 가지고 있지 않습니다.
invalidHandler > 커스텀코드를 작성할 수 있는 콜백함수입니다. 유효성 검사를 실시합니다.
유효성 검사가 필요함으로 invalidHandlere 를 사용합니다.
invalidHandler: function (form, validator) {
파라미터로는 2가지를 받습니다.
event > 이밴트 대상이 될 이벤트객체
Validator > 해당 커스텀 함수에서 사용할 인스턴스 validator
let errors = validator.numberOfInvalids();
Description: Returns the number of invalid fields.
유효성 검사에 실패한 값들을 반환합니다.해당 반환값은 키와 value 로 이루어져있습니다.
let titles = validator.errorList.map(function (obj) {
return obj.element.dataset.title
}).join(', ');
그중 title 의 키를 받와 저장합니다.
let msg = `필수 입력 정보를 모두 입력해 주세요.<br/>미입력 사항 : \${titles}`;
alert에 제공할 메세지를 작성합니다.
마지막으로 잘못 기입한 곳으로 focus를 이동합니다.
validator.errorList[0].element.focus();
또한 rule를 설정하여 사용자가 원하는 대로 검증할 수도 있습니다.
$("#myform").validate({
rules: {
contact: {
required: true,
email: {
depends: function(element) {
return $("#contactform_email").is(":checked");
}
}
}
}
});
custom.js 를 별도로 지정하면 다음과 같은 포멧으로 작성 할 수 있습니다.
$.validator.addMethod("startdate",function (value,element){
let year = new Date().getFullYear();
let month = new Date().getMonth() +1;
let day = new Date().getDate() +7;
let compareDate = new Date(year +"-"+ month + "-"+ day);
let inputDate = new Date(value);
if(inputDate >= compareDate){
return true;
} else if(inputDate < compareDate){
return false;
}
}, $.validator.format('현재일로부터 7일 이후인 {0} 일 이후로 신청 가능합니다.'));
element 에 지정하는 법은 다음과 같습니다.
data-rule-method 이름을 작성합니다.
<input type="date" id="testdate"
max="9999-12-31"
data-title="일시"
data-rule-startdate
data-msg-required="일시를 선택해 주세요." required>
required 에 적용한 메시지는 label에 적용됩니다. 또한 rule에도 적용할 수 있습니다.
<label class="checkText" for="testdate"></label>
jquery를 사용해서 검증하는 방법에 대해 알아보았습니다.
감사합니다.
'[프론트엔드]_ > [JQuery]_' 카테고리의 다른 글
[$.ajax]_ajax 통신 중단, + 마지막 요청만 받아서 수행하기 (0) | 2022.07.01 |
---|---|
[JQuery]_자주 사용한 노드 탐색 종류 (0) | 2022.05.17 |
[JQuery]_자주 사용하는 선택자 (0) | 2022.03.03 |
[JQuery]_JQuery가 인기 있는 이유 (0) | 2022.01.23 |
[JQuery]_개념, 사용한 함수 정리 1번 (0) | 2021.12.29 |