var wrestMsg = ""; var wrestFld = null; var wrestFldDefaultColor = ""; //var wrestFldBackColor = "#ff3061"; // subject ì†ì„±ê°’ì„ ì–»ì–´ return, 없으면 tagì˜ nameì„ ë„˜ê¹€ function wrestItemname(fld) { //return fld.getAttribute("title") ? fld.getAttribute("title") : ( fld.getAttribute("alt") ? fld.getAttribute("alt") : fld.name ); var id = fld.getAttribute("id"); var labels = document.getElementsByTagName("label"); var el = null; for(i=0; i<labels.length; i++) { if(id == labels[i].htmlFor) { el = labels[i]; break; } } if(el != null) { var text = el.innerHTML.replace(/[<].*[>].*[<]\/+.*[>]/gi, ""); if(text == '') { return fld.getAttribute("title") ? fld.getAttribute("title") : ( fld.getAttribute("placeholder") ? fld.getAttribute("placeholder") : fld.name ); } else { return text; } } else { return fld.getAttribute("title") ? fld.getAttribute("title") : ( fld.getAttribute("placeholder") ? fld.getAttribute("placeholder") : fld.name ); } } // 양쪽 공백 ì—†ì• ê¸° function wrestTrim(fld) { var pattern = /(^\s+)|(\s+$)/g; // \s 공백 ë¬¸ìž return fld.value.replace(pattern, ""); } // 필수 ìž…ë ¥ 검사 function wrestRequired(fld) { if (wrestTrim(fld) == "") { if (wrestFld == null) { // ì…€ë ‰íŠ¸ë°•ìŠ¤ì¼ ê²½ìš°ì—ë„ í•„ìˆ˜ ì„ íƒ ê²€ì‚¬í•©ë‹ˆë‹¤. wrestMsg = wrestItemname(fld) + " : 필수 "+(fld.type=="select-one"?"ì„ íƒ":"ìž…ë ¥")+"입니다.\n"; wrestFld = fld; } } } // ê¹€ì„ ìš© 2006.3 - ì „í™”ë²ˆí˜¸(휴대í°) í˜•ì‹ ê²€ì‚¬ : 123-123(4)-5678 function wrestTelNum(fld) { if (!wrestTrim(fld)) return; var pattern = /^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/; if(!pattern.test(fld.value)){ if(wrestFld == null){ wrestMsg = wrestItemname(fld)+" : ì „í™”ë²ˆí˜¸ 형ì‹ì´ 올바르지 않습니다.\n\n하ì´í”ˆ(-)ì„ í¬í•¨í•˜ì—¬ ìž…ë ¥í•˜ì„¸ìš”.\n"; wrestFld = fld; fld.select(); } } } // ì´ë©”ì¼ì£¼ì†Œ í˜•ì‹ ê²€ì‚¬ function wrestEmail(fld) { if (!wrestTrim(fld)) return; //var pattern = /(\S+)@(\S+)\.(\S+)/; ì´ë©”ì¼ì£¼ì†Œì— 한글 사용시 var pattern = /([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/; if (!pattern.test(fld.value)) { if (wrestFld == null) { wrestMsg = wrestItemname(fld) + " : ì´ë©”ì¼ì£¼ì†Œ 형ì‹ì´ 아닙니다.\n"; wrestFld = fld; } } } // 한글ì¸ì§€ 검사 (ìžìŒ, ëª¨ìŒ ì¡°í•©ëœ í•œê¸€ë§Œ 가능) function wrestHangul(fld) { if (!wrestTrim(fld)) return; //var pattern = /([^ê°€-힣\x20])/i; var pattern = /([^ê°€-힣\x20])/; if (pattern.test(fld.value)) { if (wrestFld == null) { wrestMsg = wrestItemname(fld) + ' : í•œê¸€ì´ ì•„ë‹™ë‹ˆë‹¤. (ìžìŒ, ëª¨ìŒ ì¡°í•©ëœ í•œê¸€ë§Œ 가능)\n'; wrestFld = fld; } } } // 한글ì¸ì§€ 검사2 (ìžìŒ, 모ìŒë§Œ 있는 í•œê¸€ë„ ê°€ëŠ¥) function wrestHangul2(fld) { if (!wrestTrim(fld)) return; var pattern = /([^ê°€-힣ㄱ-ã…Žã…-ã…£\x20])/i; //var pattern = /([^ê°€-힣ㄱ-ã…Žã…-ã…£\x20])/; if (pattern.test(fld.value)) { if (wrestFld == null) { wrestMsg = wrestItemname(fld) + ' : í•œê¸€ì´ ì•„ë‹™ë‹ˆë‹¤.\n'; wrestFld = fld; } } } // 한글,ì˜ë¬¸,숫ìžì¸ì§€ 검사3 function wrestHangulAlNum(fld) { if (!wrestTrim(fld)) return; var pattern = /([^ê°€-힣\x20^a-z^A-Z^0-9])/i; if (pattern.test(fld.value)) { if (wrestFld == null) { wrestMsg = wrestItemname(fld) + ' : 한글, ì˜ë¬¸, 숫ìžê°€ 아닙니다.\n'; wrestFld = fld; } } } // 한글,ì˜ë¬¸ ì¸ì§€ 검사 function wrestHangulAlpha(fld) { if (!wrestTrim(fld)) return; var pattern = /([^ê°€-힣\x20^a-z^A-Z])/i; if (pattern.test(fld.value)) { if (wrestFld == null) { wrestMsg = wrestItemname(fld) + ' : 한글, ì˜ë¬¸ì´ 아닙니다.\n'; wrestFld = fld; } } } // 숫ìžì¸ì§€ê²€ì‚¬ // 배부른꿀꿀ì´ë‹˜ 추가 (http://dasir.com) 2003-06-24 function wrestNumeric(fld) { if (fld.value.length > 0) { for (i = 0; i < fld.value.length; i++) { if (fld.value.charAt(i) < '0' || fld.value.charAt(i) > '9') { wrestMsg = wrestItemname(fld) + " : 숫ìžê°€ 아닙니다.\n"; wrestFld = fld; } } } } // ì˜ë¬¸ìž 검사 // 배부른꿀꿀ì´ë‹˜ 추가 (http://dasir.com) 2003-06-24 function wrestAlpha(fld) { if (!wrestTrim(fld)) return; var pattern = /(^[a-zA-Z]+$)/; if (!pattern.test(fld.value)) { if (wrestFld == null) { wrestMsg = wrestItemname(fld) + " : ì˜ë¬¸ì´ 아닙니다.\n"; wrestFld = fld; } } } // ì˜ë¬¸ìžì™€ ìˆ«ìž ê²€ì‚¬ // 배부른꿀꿀ì´ë‹˜ 추가 (http://dasir.com) 2003-07-07 function wrestAlNum(fld) { if (!wrestTrim(fld)) return; var pattern = /(^[a-zA-Z0-9]+$)/; if (!pattern.test(fld.value)) { if (wrestFld == null) { wrestMsg = wrestItemname(fld) + " : ì˜ë¬¸ ë˜ëŠ” 숫ìžê°€ 아닙니다.\n"; wrestFld = fld; } } } // ì˜ë¬¸ìžì™€ ìˆ«ìž ê·¸ë¦¬ê³ _ 검사 function wrestAlNum_(fld) { if (!wrestTrim(fld)) return; var pattern = /(^[a-zA-Z0-9\_]+$)/; if (!pattern.test(fld.value)) { if (wrestFld == null) { wrestMsg = wrestItemname(fld) + " : ì˜ë¬¸, 숫ìž, _ ê°€ 아닙니다.\n"; wrestFld = fld; } } } // 최소 ê¸¸ì´ ê²€ì‚¬ function wrestMinLength(fld) { if (!wrestTrim(fld)) return; var minlength = fld.getAttribute("minlength"); if (wrestFld == null) { if (fld.value.length < parseInt(minlength)) { wrestMsg = wrestItemname(fld) + " : 최소 "+minlength+"ê¸€ìž ì´ìƒ ìž…ë ¥í•˜ì„¸ìš”.\n"; wrestFld = fld; } } } // ì´ë¯¸ì§€ í™•ìž¥ìž function wrestImgExt(fld) { if (!wrestTrim(fld)) return; var pattern = /\.(gif|jpg|png)$/i; // jpeg 는 ì œì™¸ if(!pattern.test(fld.value)){ if(wrestFld == null){ wrestMsg = wrestItemname(fld)+" : ì´ë¯¸ì§€ 파ì¼ì´ 아닙니다.\n.gif .jpg .png 파ì¼ë§Œ 가능합니다.\n"; wrestFld = fld; fld.select(); } } } // í™•ìž¥ìž function wrestExtension(fld, css) { if (!wrestTrim(fld)) return; var str = css.split("="); // ext=?? <-- str[1] var src = fld.value.split("."); var ext = src[src.length - 1]; if (wrestFld == null) { if (ext.toLowerCase() < str[1].toLowerCase()) { wrestMsg = wrestItemname(fld) + " : ."+str[1]+" 파ì¼ë§Œ 가능합니다.\n"; wrestFld = fld; } } } // 공백 검사후 ê³µë°±ì„ "" ë¡œ 변환 function wrestNospace(fld) { var pattern = /(\s)/g; // \s 공백 ë¬¸ìž if (pattern.test(fld.value)) { if (wrestFld == null) { wrestMsg = wrestItemname(fld) + " : ê³µë°±ì´ ì—†ì–´ì•¼ 합니다.\n"; wrestFld = fld; } } } // submit í• ë•Œ ì†ì„±ì„ 검사한다. function wrestSubmit() { wrestMsg = ""; wrestFld = null; var attr = null; // 해당í¼ì— 대한 ìš”ì†Œì˜ ê°œìˆ˜ë§Œí¼ ëŒë ¤ë¼ for (var i=0; i<this.elements.length; i++) { var el = this.elements[i]; // Input tag ì˜ type ì´ text, file, password ì¼ë•Œë§Œ // ì…€ë ‰íŠ¸ 박스ì¼ë•Œë„ 필수 ì„ íƒ ê²€ì‚¬í•©ë‹ˆë‹¤. select-one if (el.type=="text" || el.type=="hidden" || el.type=="file" || el.type=="password" || el.type=="select-one" || el.type=="textarea") { if (el.getAttribute("required") != null) { wrestRequired(el); } if (el.getAttribute("minlength") != null) { wrestMinLength(el); } var array_css = el.className.split(" "); // class 를 공백으로 나눔 el.style.backgroundColor = wrestFldDefaultColor; // ë°°ì—´ì˜ ê¸¸ì´ë§Œí¼ ëŒë ¤ë¼ for (var k=0; k<array_css.length; k++) { var css = array_css[k]; switch (css) { case "required" : wrestRequired(el); break; case "trim" : wrestTrim(el); break; case "email" : wrestEmail(el); break; case "hangul" : wrestHangul(el); break; case "hangul2" : wrestHangul2(el); break; case "hangulalpha" : wrestHangulAlpha(el); break; case "hangulalnum" : wrestHangulAlNum(el); break; case "nospace" : wrestNospace(el); break; case "numeric" : wrestNumeric(el); break; case "alpha" : wrestAlpha(el); break; case "alnum" : wrestAlNum(el); break; case "alnum_" : wrestAlNum_(el); break; case "telnum" : wrestTelNum(el); break; // ê¹€ì„ ìš© 2006.3 - ì „í™”ë²ˆí˜¸ í˜•ì‹ ê²€ì‚¬ case "imgext" : wrestImgExt(el); break; default : if (/^extension\=/.test(css)) { wrestExtension(el, css); break; } } // switch (css) } // for (k) } // if (el) } // for (i) // 필드가 null ì´ ì•„ë‹ˆë¼ë©´ 오류메세지 ì¶œë ¥í›„ í¬ì»¤ìŠ¤ë¥¼ 해당 오류 필드로 옮김 // 오류 필드는 배경색ìƒì„ 바꾼다. if (wrestFld != null) { // ê²½ê³ ë©”ì„¸ì§€ ì¶œë ¥ alert(wrestMsg); if (wrestFld.style.display != "none") { var id = wrestFld.getAttribute("id"); // 오류메세지를 위한 element 추가 var msg_el = document.createElement("strong"); msg_el.id = "msg_"+id; msg_el.className = "msg_sound_only"; msg_el.innerHTML = wrestMsg; wrestFld.parentNode.insertBefore(msg_el, wrestFld); var new_href = document.location.href.replace(/#msg.+$/, "")+"#msg_"+id; document.location.href = new_href; //wrestFld.style.backgroundColor = wrestFldBackColor; if (typeof(wrestFld.select) != "undefined") wrestFld.select(); wrestFld.focus(); } return false; } if (this.oldsubmit && this.oldsubmit() == false) return false; return true; } // ì´ˆê¸°ì— onsubmitì„ ê°€ë¡œì±„ë„ë¡ í•œë‹¤. function wrestInitialized() { for (var i = 0; i < document.forms.length; i++) { // onsubmit ì´ë²¤íŠ¸ê°€ 있다면 ì €ìž¥í•´ 놓는다. if (document.forms[i].onsubmit) { document.forms[i].oldsubmit = document.forms[i].onsubmit; } document.forms[i].onsubmit = wrestSubmit; } } // í¼í•„ë“œ ìžë™ê²€ì‚¬ $(document).ready(function(){ // onload wrestInitialized(); });