diff --git a/src/main/webapp/WEB-INF/jsp/include/fims/tail-biz.jsp b/src/main/webapp/WEB-INF/jsp/include/fims/tail-biz.jsp index 95aee36d..26e14a60 100644 --- a/src/main/webapp/WEB-INF/jsp/include/fims/tail-biz.jsp +++ b/src/main/webapp/WEB-INF/jsp/include/fims/tail-biz.jsp @@ -14,7 +14,6 @@ -<%-- --%> diff --git a/src/main/webapp/WEB-INF/templates/thymeleaf/layout/cmm_script.html b/src/main/webapp/WEB-INF/templates/thymeleaf/layout/cmm_script.html index 82d3e34e..e73c3460 100644 --- a/src/main/webapp/WEB-INF/templates/thymeleaf/layout/cmm_script.html +++ b/src/main/webapp/WEB-INF/templates/thymeleaf/layout/cmm_script.html @@ -30,8 +30,7 @@ - - + diff --git a/src/main/webapp/resources/js/fims/framework/cmm/validator.js b/src/main/webapp/resources/js/fims/framework/cmm/validator.js deleted file mode 100644 index 3a80e7ff..00000000 --- a/src/main/webapp/resources/js/fims/framework/cmm/validator.js +++ /dev/null @@ -1,535 +0,0 @@ -/*************************************************************************************************** - * Daon Soft 폼 검증 툴 - * Designed By xanadu (방기배) - * 사용방법 : - * HTML - - * 아래 예와 같이 속성명을 정의하고, Form Elements 에 class 속성으로 사용한다. - * - * 예를 들어 반드시 입력해야 하며, 숫자만으로 되어있어야 하며, white space가 없어야 한다면, - * 아래와 같이 사용한다. - * - * - * SCRIPT - - * 폼 전체 적용 - * if(Validator.validate(검증대상Form객체)){ - * 문제가 없다면 수행할 코드.... - * form.submit(); - * } - * - * 한 항목씩 사용 - * var message = Validator["validate-full-jumin"](str); - * // 오류가 있으면 메시지를 반환 - * if(message) { - * alert(message); - * return false; - * } - ***************************************************************************************************/ - - - -$(document).ready(function(){ - /** - * ime-mode 설정 - */ - $('.validate-digits').css("ime-mode","disabled"); //숫자만 입력 가능 - $('.validate-digits-').css("ime-mode","disabled"); //숫자 및 하이픈(-)만 입력 가능 - $('.validate-digits-dot').css("ime-mode","disabled"); //숫자 및 도트(.)만 입력 가능 - $('.validate-digits-comma').css("ime-mode","disabled"); //숫자 및 콤마(.)만 입력 가능 - $('.validate-digits-comma-dot').css("ime-mode","disabled"); //숫자 및 콤마(,),도트(.)만 입력 가능 - $('.validate-amount').css("ime-mode","disabled"); //금액만 입력 가능(숫자 및 콤마(,),포인트(.)) - $('.validate-id-format').css("ime-mode","disabled"); //아이디-영문으로 시작하고 영문(대소문자),숫자.,_만 입력 가능 - $('.validate-nickname-format').css("ime-mode","active"); //닉네임-한글,영문(대,소),숫자만 입력 가능 - $('.validate-alpha').css("ime-mode","disabled"); //영문으로 시작-알파뱃만 입력 가능 - $('.validate-basic-char').css("ime-mode","disabled"); //영문,슛자,언더바(_)만 입력 가능 - $('.validate-alpha-num').css("ime-mode","disabled"); //영문 및 숫자만 입력 가능 - $('.validate-kr-digits').css("ime-mode","active"); //한글 및 숫자 조합만 입력 가능 - $('.validate-date').css("ime-mode","disabled"); //날짜입력 - $('.validate-email').css("ime-mode","disabled"); //유효한 이메일 - $('.validate-url').css("ime-mode","disabled"); //유효한 url - $('.validate-front-jumin').css("ime-mode","disabled"); //주민번호 앞자리 - $('.validate-back-jumin').css("ime-mode","disabled"); //주민번호 뒷자리 - $('.validate-full-jumin').css("ime-mode","disabled"); //전체 주민번호 - $('.validate-tel-num').css("ime-mode","disabled"); //전화번호 - $('.validate-biz-num').css("ime-mode","disabled"); //사업자번호 - $('.validate-ip').css("ime-mode","disabled"); //ip address -}); - - -//*항목별 유효성검사 class 적용 -// -필수입력 항목 -// :required -// -날짜 항목 -// :validate-date -// -금액 항목 -// :validate-amount -// -이메일 항목 -// :validate-email -// -숫자 입력 항목 -// :validate-digits //숫자만 입력 -// :validate-digits- //숫자 및 하이픈(-)만 입력 가능 -// :validate-digits-comma //숫자 및 콤마(,)만 입력 가능 -// :validate-digits-dot //숫자 및 도트(.)만 입력 가능 -// :validate-digits-comma-dot //숫자 및 콤마(,),도트(.)만 입력 가능 - -/** - * text input에 사용자가 입력한 데이터 전체를 자동 validation 한다. - * validator.js를 참고해서 input태그의 class="속성1 속성2 속성3"을 입력하면 자동체크됨. - * 예) class="required validate-digits validate-white-space" - * 값 존재여부. 숫자만 입력됐는지 체크. 공백만 입력됐는지 체크. *validator.js에서 체크항목 확인 - * @param obj (jquery object) - * @param value (jquery object value) - */ -function fn_setInputFormat_default(obj){ - fn_setInputFormat(obj, obj.value); -} -function fn_setInputFormat(obj, value){ - var classVal = $(obj).attr("class"); - var classList = classVal.split(' '); - for(i=0;i= 0) { - var tmpArray = className.split("_"); - className = tmpArray[0]; - tmpArray.shift(); - - if(tmpArray == null || tmpArray.length == 0) { - param = ""; - } else if(tmpArray.length == 1) { - param = tmpArray[0]; - } else { - param = tmpArray; - } - } - - // 클래스명과 일치하는 메서드가 있으면... - if(Validator[className]) { - var message = Validator[className](el.value,el,param); - // 오류가 있으면 메시지를 반환 - if(message) { - Validator._handleError(message, el); - return false; - } - } - } - } - return true; - }, - - /** - * 오류 제어 - * @param {String} message - * @param {HTMLFormElement} el - */ - _handleError : function(message, el) { - var title = Validator._getTitle(el); - if(title != "") - alert(title +"(은)는 " + message); - else - alert(message); - el.style.backgroundColor="#fdfde4"; - el.focus(); - - }, - - _getTitle : function (el) { - if (el.title) - return el.title; - else - return ""; - }, - - // 필수입력(or선택) - "required" : function(v,elm) { - switch (elm.tagName) { - case 'INPUT': - var type = elm.type; - if('checkbox'==type||'radio'==type){ - return validCheckboxOrRadio(v,elm); - } - else - return validInput(v); - break; - case 'SELECT': - return validSelectbox(v, elm); - break; - default: - break; - } - //Input Tag - function validInput(v){ - return !v ? "반드시 입력하셔야 합니다." : false; - } - //Checkbox or Radio Tag - function validCheckboxOrRadio(v,elm) { - var field_obj = document.getElementsByName(elm.name); -// var field_obj = elm; - if (field_obj.length > 1) { - for (var idx = 0; idx < field_obj.length; idx++) { - if (field_obj[idx].checked) return false; - } - } else { - if (field_obj.checked) return false; - } - return "항목을 선택하셔야 합니다."; - } - //Selectbox Tag - function validSelectbox(v, elm) { - var field_obj = document.getElementById(elm.name); -// var field_obj = elm; - - if(field_obj.options[field_obj.selectedIndex].value != "") - return false; - return "항목을 선택하셔야 합니다."; - } - }, - // white space 없이 입력 - "validate-white-space" : function(v) { - return /\s+/.test(v) ? "공백없이 입력되야 합니다." : false; - }, - // 숫자만 입력 - "validate-digits" : function(v) { - return isNaN(v) || /[^\d]/.test(v)? "숫자만 입력하셔야 합니다." : false; - }, - // 숫자와 하이픈(-)만 입력 - "validate-digits-" : function(v) { - v = v.replace(/-/g, ""); - return isNaN(v) || /[^\d]/.test(v)? "숫자, 하이픈(-)만 입력하셔야 합니다." : false; - }, - // 숫자와 포인트(.)만 입력 - "validate-digits-dot" : function(v) { - v = v.replace(/\./g, ""); - return isNaN(v) || /[^\d]/.test(v)? "숫자, 포인트(.)만 입력하셔야 합니다." : false; - }, - // 숫자와 콤마(,)만 입력 - "validate-digits-comma" : function(v) { - v = v.replace(/\,/g, ""); - return isNaN(v) || /[^\d]/.test(v)? "숫자, 콤마(,)만 입력하셔야 합니다." : false; - }, - // 숫자와 콤마(,),포인트(.)만 입력 - "validate-digits-comma-dot" : function(v) { - v = v.replace(/\,\./g, ""); - return isNaN(v) || /[^\d]/.test(v)? "숫자, 콤마(,),포인트(.)만 입력하셔야 합니다." : false; - }, - // 금액만 입력 가능(validate-digits-comma와 동일, 세자리콤마 자동추가 이벤트리스너 적용을 위해 추가 함) - "validate-amount" : function(v) { - v = v.replace(/\,/g, ""); - return isNaN(v) || /[^\d]/.test(v)? "숫자, 콤마(,)만 입력하셔야 합니다." : false; - }, - // 아이디 형태 영문으로 시작하고 영문, 숫자, ., _ 를 사용 - "validate-id-format" : function(v){ - var ptrn1 = /^[^a-zA-Z]/; //false가 정상 - var ptrn2 = /[^a-zA-Z0-9._]/; //false가 정상 + - return (ptrn1.test(v) || ptrn2.test(v)) ? "영문으로시작하고 영문(대소문자), 숫자, ., _ 만 입력 가능합니다." : false; - }, - // 닉네임 - "validate-nickname-format" : function(v){ - var ptrn = /[^(가-힣a-zA-Z0-9)]/; - return (ptrn.test(v)) ? "한글, 영문(대,소), 숫자만 입력 가능합니다." : false; - }, - // 닉네임 + 스페이스 추가 - "validate-nickname-space-format" : function(v){ - var ptrn = /[^(가-힣a-zA-Z0-9\s+)]/; - return (ptrn.test(v)) ? "한글, 영문(대,소), 숫자, 공백만 입력 가능합니다." : false; - }, - // 차대번호 - "validate-vin-format" : function(v){ - var ptrn = /[^(A-Z0-9)]/; - return (ptrn.test(v)) ? "영문(대문자), 숫자만 입력 가능합니다." : false; - }, - // 영문으로 시작 입력 - "validate-alpha" : function(v) { - return /[^a-zA-Z]+$/.test(v) ? "알파뱃으로 시작되도록 입력하셔야 합니다." : false; - }, - // 영문, 숫자, _(언더바) 만 입력 - "validate-basic-char" : function(v) { - return !/[a-zA-Z0-9_]/.test(v) ? "알파뱃, 숫자, 언더바(_)만 입력하셔야 합니다." : false; - }, - // 영문과 숫자만 입력 - "validate-alpha-num" : function(v) { - return /\W/.test(v) ? "알파뱃과 숫자만 입력하셔야 합니다." : false; - }, - // 한글+ 숫자 조합만 입력 - "validate-kr-digits" : function(v){ - var ptrnKr = /[(가-힣)]/; - var ptrnDigits = /[(0-9)]/; - return (ptrnKr.test(v) && ptrnDigits.test(v)) ? false : "한글 + 숫자만 입력 가능합니다."; - }, - // 날자 사용가능한 숫자 입력 - "validate-date" : function(v) { - if("" != v){ - var date = new Date(v); - return (isNaN(date.getFullYear()) || isNaN(date.getMonth()) || isNaN(date.getDate()) ) ? "올바른 날짜를 입력하셔야 합니다.(예 2001-01-01)" : false; - } - }, - // 유효한 email 입력 - "validate-email" : function(v) { - if(v == "") return false; - return !/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v) ? "바른 이메일 주소를 입력하셔야 합니다." : false; - }, - // 유효한 URL 입력 - "validate-url" : function(v) { - if(v) { - return !/^(http|https|ftp):\/\/(([a-zA-Z0-9][a-zA-Z0-9_-]*)(\.[a-zA-Z0-9][a-zA-Z0-9_-]*)?)(:(\d+))?\/?/i.test(v) ? "http://또는https://를 포함한 바른 URL을 입력하셔야 합니다." : false; - } - return false; - }, - // 유효한 주민번호 앞자리 검증 - "validate-front-jumin" : function(v) { - - if (/[^\d]/.test(v) || v.length !=6 || isNaN(v)) { - return "숫자 6자리여야 합니다."; - } - - return false ; - }, - // 유요한 주민번호 뒷자리 검증 - "validate-back-jumin" : function(v) { - var check_digit2; - - if (/[^\d]/.test(v) || v.length!=7 || isNaN(v)) { - return "숫자 7자리여야 합니다."; - } - - return false; - }, - // 유효한 전체 주민번호 검증 - "validate-full-jumin" : function(v) { - - val = v.replace(/-/g, ""); - - pin1 = val.substring(0,6); - pin2 = val.substring(6,13); - - if (pin1.length!=6 || isNaN(pin1)) { - return " 앞자리는 6자리 숫자여야 합니다."; - } - - var a1=pin1.substring(0,1) - var a2=pin1.substring(1,2) - var a3=pin1.substring(2,3) - var a4=pin1.substring(3,4) - var a5=pin1.substring(4,5) - var a6=pin1.substring(5,6) - - check_digit1 = a1*2 + a2*3 + a3*4 + a4*5 + a5*6 + a6*7; - - if (pin2.length!=7 || isNaN(pin2)) { - return " 뒷자리는 7자리 숫자여야 합니다."; - } - - var b1=pin2.substring(0,1) - var b2=pin2.substring(1,2) - var b3=pin2.substring(2,3) - var b4=pin2.substring(3,4) - var b5=pin2.substring(4,5) - var b6=pin2.substring(5,6) - var b7=pin2.substring(6,7) - - check_digit2 = check_digit1 + b1*8 + b2*9 + b3*2 + b4*3 + b5*4 + b6*5; - - check_digit2 = check_digit2 % 11 - check_digit2 = 11 - check_digit2 - check_digit2 = check_digit2 % 10 - - if (check_digit2 != b7){ - return "유효하지 않는 주민등록번호입니다."; - } - - return false; - }, - // BYTE 단위로 최대 글자수를 제한 - "validate-max-length" : function(v, elm, length) { - var maxSize = parseInt(length, 10); - var len = 0; - var str = v.substring(0); - if(str == null) return "길이를 확인할 값이 없습니다."; - for(var i=0; i len) { - return "최소 "+minSize+" byte 를 입력 해야 합니다."; - } - return false; - }, - // BYTE 단위로 범위내의 글자수를 체크 - "validate-limit-length" : function(v, elm, param) { - if(param.length == 2) { - var minSize = parseInt(param[0], 10); - var maxSize = parseInt(param[1], 10); - var len = 0; - var str = v.substring(0); - if(str == null) return "길이를 확인 할 값이 없습니다."; - for(var i=0; i len || maxSize < len) { - //return "최소 "+minSize+" byte 보다 같거나 크고, "+maxSize+" 보다 같거나 작아야 합니다."; - return "최소 "+minSize+"자 이상, "+maxSize+"자 이하여야 합니다."; - } - } else { - return "최소 값과 최대 값 두개의 배열 인자가 필요합니다."; - } - - return false; - }, - // 전화번호 유효성 체크 02-222-2222 형식 '-' 토큰으로 잘라서 검증함 - "validate-tel-num" : function(v, elm, param) { - if(v) { - val = v.replace(/-/g, ""); - - if(isNaN(val)) { - return "숫자, - 만 입력하셔야 합니다."; - } - - var tmpArray = v.split("-"); - if(tmpArray.length != 3) { - return "-를 포함하여 정확히 입력하셔야 합니다."; - } - - for(i = 0; i < tmpArray.length; i++ ) { - if(tmpArray[i] == "") return "정확히 입력하셔야 합니다."; - if(tmpArray[i].length <2 || tmpArray[i].size >4) return "정확히 입력하셔야 합니다."; - } - - } - - return false; - }, - // 사업자번호 유효성 체크 000-00-00000 형식 '-' 토큰으로 잘라서 검증함 - "validate-biz-num" : function(v, elm, param) { - if(v) { - val = v.replace(/-/g, ""); - - if(isNaN(val)) { - return "숫자, - 만 입력하셔야 합니다."; - } - - var tmpArray = v.split("-"); - if(tmpArray.length != 3) { - return "-를 포함하여 정확히 입력하셔야 합니다."; - } - - for(i = 0; i < tmpArray.length; i++ ) { - if(tmpArray[i] == "") return "정확히 입력하셔야 합니다."; - if(tmpArray[i].length <2 || tmpArray[i].size >5) return "정확히 입력하셔야 합니다."; - } - - } - - return false; - }, - // 웹상에서 사용가능한 이미지 파일 종류인지 확인한다. gif, jpg, png 만 인정함 - "validate-is-image" : function(v) { - if(v) { - var ext = ""; - if(v.indexOf(".") >= 0) { - ext = v.substring(v.lastIndexOf(".")+1); - ext = ext.toLowerCase(); - if(ext.length != 3 || !(ext == "gif" || ext == "jpg" || ext == "jpeg" || ext == "png" || ext == "bmp")) - return "파일은 gif, jpg, png 파일만 등록을 하실수 있습니다."; - } else { - return "파일의 확장자가 없습니다."; - } - } - return false; - }, - "validate-ip" :function(v){ - if(v){ - var ip4Ptrn = /^((25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){2,3}[,]?)+$/; - if(!ip4Ptrn.test(v)){ - return "아이피 형식이 아닙니다. x.x.x 또는 x.x.x.x 형식으로 입력해주세요."; - } - } - return false; - } - - } \ No newline at end of file