/** * /application/_helpers/_js/form.js * @author Netfu * @since 2012/04/22 * @last update 2014/04/28 * @Module v4.0 ( SNOW ) * @Brief :: Form Validate Script * @Comment :: Form 검증 및 필드 확인 Javascript */ /// 에러메시지 포멧 정의 /// var NO_BLANK = "{name+을를} 입력하여 주십시오."; var NO_CHECK = "{name+을를} 선택하여 주십시오."; var NOT_VALID = "{name+이가} 올바르지 않습니다."; var TOO_LONG = "{name}의 길이가 초과되었습니다. (최대 {maxbyte}바이트)"; var SPACE = (navigator.appVersion.indexOf("MSIE")!=-1) ? " " : ""; /// 스트링 객체에 메소드 추가 /// String.prototype.trim = function(str) { str = this != window ? this : str; return str.replace(/^\s+/g,'').replace(/\s+$/g,''); } String.prototype.text_trim = function(){ return this.replace(/^\s+|\s+$/g, ""); } String.prototype.hasFinalConsonant = function(str) { str = this != window ? this : str; var strTemp = str.substr(str.length-1); return ((strTemp.charCodeAt(0)-16)%28!=0); } String.prototype.bytes = function(str) { str = this != window ? this : str; var len = 0; for(var j=0; j 128) ? 2 : 1 } return len; } String.prototype.number_format=function(){ return this.replace(/(\d)(?=(?:\d{3})+(?!\d))/g,'$1,'); } Array.prototype.shuffle = function() { return this.concat().sort(function() { return Math.random() - Math.random(); }); } function in_array(value, array, similar) { for(var i=0; i]+)>)/gi, "")); } var PATTERN = el.getAttribute("PATTERN"); var minbyte = el.getAttribute("MINBYTE"); var maxbyte = el.getAttribute("MAXBYTE"); var minval = el.getAttribute("MINVAL"); var maxval = el.getAttribute("MAXVAL"); var option = el.getAttribute("OPTION"); var match = el.getAttribute("MATCHING"); // 수정 :: Prototype JS 와 충돌하여 'MATCH' 에서 'MATCHING' 으로 변경 var glue = el.getAttribute("GLUE"); var unit = el.getAttribute("UNIT"); var or = el.getAttribute("OR"); if(unit == null) unit = ''; if (el.getAttribute("REQUIRED") != null) { var ERR_MSG = (el.getAttribute("MESSAGE") != null) ? el.getAttribute("MESSAGE") : null; if ((el.type.toLowerCase() == "radio" || el.type.toLowerCase() == "checkbox") && !checkMultiBox(el)) return (ERR_MSG) ? doError(el,ERR_MSG) : doError(el,NO_CHECK); if (el.tagName.toLowerCase() == "select" && (el.value == null || el.value == "")) { return (ERR_MSG) ? doError(el,ERR_MSG) : doError(el,NO_CHECK); } if (el.value == null || el.value == "" ) { if(el.tagName.toLowerCase()!='textarea' || (el.tagName.toLowerCase()=='textarea' && _type!='editor')) { return (ERR_MSG) ? doError(el,ERR_MSG) : doError(el,NO_BLANK); } } if(_type=='editor' && _editor_use[el.name] && !_content) { return doError(el,NO_BLANK); } } if (minbyte != null && el.value != "" && el.value.bytes() < parseInt(minbyte)) { if(unit=='') unit = "바이트"; return doError(el,"{name+은는} 최소 "+minbyte+" "+unit+" 이상 입력해야 합니다."); } if (maxbyte != null && el.value != "" && el.value.bytes() > parseInt(maxbyte)) { if(unit=='') unit = "바이트"; return doError(el,"{name+은는} 최대 "+maxbyte+" "+unit+" 이하로 입력해야 합니다."); } if (minval != null && el.value != "" && el.value < parseInt(minval)) return doError(el,"{name+은는} 최저 "+minval+" "+unit+" 이상 입력해야 합니다."); if (maxval != null && el.value != "" && el.value > parseInt(maxval)) return doError(el,"{name+은는} 최고 "+maxval+" "+unit+" 이하로 입력해야 합니다."); if (PATTERN != null && el.value != "" && !PATTERN(el,pattern)) return false; if (match != null && (el.value != form.elements[match].value)) return doError(el,"{name+이가} 일치하지 않습니다."); if (or != null && (el.value == null || el.value == "") && (form.elements[or].value==null || form.elements[or].value == "")) { var name2 = (hname = form.elements[or].getAttribute("HNAME")) ? hname : form.elements[or].getAttribute("NAME"); return doError(el,"{name+} 또는 "+name2+" 중 하나는 입력해야 합니다."); } if (option != null && el.value != "") { if (el.getAttribute('SPAN') != null) { var _value = new Array(); for (span=0; span