웹모아
웹모아[회원가입] 로그인 / 회원가입   검색     



  
폼체크-예제
 


자바스크립트 공통함수
  2006-02-22 18:12:40 작성:상큼한여자 댓글:(0)   조회:6796

//////////////////////////////////////////////////////////////////////////
//   자바스크립트 공통함수             //
//                  //
//   주의: 아래의 모든 메소드는 입력폼의 필드이름(myform.myfield)을   //
//        파라미터로 받는다. 필드의 값(myform.myfield.value)이 아님을  //
//        유념할 것.              //
//////////////////////////////////////////////////////////////////////////

/** 영문자와 숫자로만 이루어졌는지 Check */
String.prototype.isid = function() {
 if(this.search(/[^A-Za-z0-9_-]/) == -1)
  return true;
 else 
  return false;
}

/** 전화번호 Check */
String.prototype.istel = function() {
 if(this.search(/[^0-9_-]/) == -1)
  return true;
 else 
  return false;
}

/** 영문자만 이루어졌는지 Check */
String.prototype.isalpha = function() {
 if(this.search(/[^A-Za-z]/) == -1)
  return true;
 else
  return false;
}

/** 숫자로만 이루어졌는지 Check */
String.prototype.isnumber = function() {
 if(this.search(/[^0-9]/) == -1)
  return true;
 else
  return false;
}

/** 주민등록번호 Check */
String.prototype.isjumin = function() {
 var jumin= this;
 if(jumin.length  != 13) 
  return false;
 tval=jumin.charAt(0)*2 + jumin.charAt(1)*3 + jumin.charAt(2)*4
 + jumin.charAt(3)*5 + jumin.charAt(4)*6 + jumin.charAt(5)*7
 + jumin.charAt(6)*8+ jumin.charAt(7)*9 + jumin.charAt(8)*2
 + jumin.charAt(9)*3 + jumin.charAt(10)*4 + jumin.charAt(11)*5;

 tval2=11- (tval % 11);
 tval2=tval2 % 10;
 
 if(jumin.charAt(12)==tval2 &&  (jumin.charAt(6)=="1" ||jumin.charAt(6)=="2")) {
  return true;
 }
 else{
  return false ;
 }
}

/** E-Mail Check */
String.prototype.isemail = function() {
 if(this.search(/(.+)@.+\..+/) == -1)
  return false;
 else {
  for(var i=0; i < this.length;i++)
   if(this.charCodeAt(i) > 256)
    return false;
  return true;
 }
}

/** 날짜 Check (YYYY-MM-DD) */
String.prototype.isdate = function() {
 if(this.search(/\d{4}\-\d{2}\-\d{2}/) == -1)
  return false;
 else {
  return true;
 }
}

/** 한글을 2글자로 계산하여 순수한 길이를 계산한다 */
String.prototype.strLen = function() {
 var temp;
 var set = 0;
 var mycount = 0;

 for( k = 0 ; k < this.length ; k++ ){
  temp = this.charAt(k);

  if( escape(temp).length > 4 ) {
   mycount += 2
  }
  else mycount++;
 }

 return mycount;
}

/** 앞 공백 제거 */
String.prototype.ltrim = function() {
 var i, j = 0;
 var objstr

 for ( i = 0; i < this.length ; i++){
  if(this.charAt(i) == ' ' ){
   j = j + 1;
  }
  else{
   break;
  }
 }
 return this.substr(j, this.length - j+1)  
}

/** 뒤 공백 제거 */
String.prototype.rtrim = function() {
 var i, j = 0;

 for ( i = this.length - 1; i >= 0 ; i--){
  if(this.charAt(i) == ' ' ){
   j = j + 1
  }
  else{
   break;
  }
 }
 return  this.substr(0, this.length - j);
}

/** 앞/뒤 공백 제거 */
String.prototype.trim = function() {
 return this.replace(/\s/g, "");
}

/** Focus 맞춤 */
function _cmdfocus(formobj){
 formobj.select();
 formobj.focus();
}

// formField : 폼 오브젝트
// checkName : 체크하려는 오브젝트 명
// 
function ChkForm(formField, checkName, message, minlength, maxlength) { 
 
 var formValue = formField.value.ltrim().rtrim();

 // 주민등록번호가 아닐 경우 길이 Check
 if((checkName != 'ssn') && (checkName != 'ncssn') || (minlength == maxlength == 0)){
  if(formField == null) return false;
  if(formValue == '/' && minlength > 0) { alert(message+" 필수입력 항목입니다."); _cmdfocus(formField); return false; }
  if(formValue.strLen() < minlength) { alert(message+" 최소 "+minlength+" 자이상 입력하세요."); _cmdfocus(formField); return false; }
  if(formValue.strLen() > maxlength) { alert(message+" 최대 영어 "+maxlength+"자, 한글 "+maxlength/2+"자까지 입력 가능합니다."); _cmdfocus(formField); return false; }
 }  

 switch(checkName) {
  case "" : return true;

  // 영문자로만 이루어져 있는지
  case "alpha" :
   if(formValue.isalpha()) { return true; }
   else { alert(message + " 영문자만 입력 가능 합니다.");  _cmdfocus(formField); return false; }
   break;

  // 숫자로만 이루어져있는지..
  case "number" :
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능 합니다."); _cmdfocus(formField); return false; }
   break;

  // 주민등록번호인지..
  case "pssn" :
   if(formValue.strLen() != 13) { alert("주민등록번호를 정확히 입력해 주세요."); return false; }

   if(formValue.isjumin()) { return true; }
   else { alert("주민등록번호를 정확히 입력해 주세요."); return false; }
   break;

  // 부모님 E-Mail 체크
  case "pemail" :
   if(formValue.isemail()) { return true; }
   else { alert("E-Mail 형식이 틀립니다. 다시 입력해 주세요 (형식 : account@localhost.com)"); _cmdfocus(formField); return false; }
   break;

  // 영문자와 숫자로만 이루어져 있는지
  case "userid" :
   if(formValue.isid()) { return true; }
   else { alert(message + " 영문자와 숫자만 입력 가능 합니다."); _cmdfocus(formField); return false; }
   break;

  // 영문자와 숫자로만 이루어져 있는지
  case "passwd" :
   if(formValue.isid()) { return true; }
   else { alert(message + " 영문자와 숫자만 입력 가능 합니다."); _cmdfocus(formField); return false; }
   break;

  // E-Mail인지
  case "email" :
   if(formValue.isemail()) { return true; }
   else { alert("E-Mail 형식이 틀립니다. 다시 입력해 주세요 (형식 : account@localhost.com)"); _cmdfocus(formField); return false; }
   break;

  // 우편번호1
  case "zip1" :
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다. "); return false; }
   break;

  // 우편번호2
  case "zip2" :
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다. "); return false; }
   break;

  // 주소1
  case "addr1" :
   if(formValue.trim()) { return true; }
   else { alert(message + " 주소를 입력해 주세요."); return false; }
   break;

  // 주소2
  case "addr2" :
   if(formValue.trim()) { return true; }
   else { alert(message + " 주소를 입력해 주세요."); return false; }
   break;

  // 전화번호 지역번호
  case "tel1" :
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다."); _cmdfocus(formField); return false; }
   break;

  // 전화번호 국번
  case "tel2" :
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다."); _cmdfocus(formField); return false; }
   break;

  // 전화번호
  case "tel3" :
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다."); _cmdfocus(formField); return false; }
   break;

  // 이동통신사 번호
  case "mobile1" :
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다."); _cmdfocus(formField); return false; }
   break;

  // 이동통신사 국번
  case "mobile2" :
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다."); _cmdfocus(formField); return false; }
   break;

  // 이동통신사 전화번호
  case "mobile3" :
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다."); _cmdfocus(formField); return false; }
   break;

  // 생일 - 연도
  case "byear" :
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다."); _cmdfocus(formField); return false; }
   break;

  // 생일 - 월
  case "bmonth" :
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다."); _cmdfocus(formField); return false; }
   break;

  // 생일 - 일
  case "bday" :
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다."); _cmdfocus(formField); return false; }
   break;

  // 결혼기념일 - 연도
  case "myear" :
   if(formValue == "") return true;
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다."); _cmdfocus(formField); return false; }
   break;

  // 결혼기념일 - 월
  case "mmonth" :
   if(formValue == "") return true;
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다."); _cmdfocus(formField); return false; }
   break;

  // 결혼기념일 - 일
  case "mday" :
   if(formValue == "") return true;
   if(formValue.isnumber()) { return true; }
   else { alert(message + " 숫자만 입력 가능합니다."); _cmdfocus(formField); return false; }
   break;

  // 주민등록번호인지..
  case "ssn" :
   if(formValue.strLen() != 13) { alert("주민등록번호를 정확히 입력해 주세요."); return false; }

   if(formValue.isjumin()) { return true; }
   else { alert("주민등록번호를 정확히 입력해 주세요."); return false; }
   break;

  // 날짜인지 (YYYY-MM-DD)
  case "bdate" :
   if(formValue.isdate()) { return true; }
   else { alert("날짜 형식이 틀립니다. 다시 입력해 주세요 (형식: 2002-09-20)");  _cmdfocus(formField); return false; }
   break;

  // 그 외의 경우는 true 리턴...
  default : return true;
 }
}


// 아이디 중복체크
function DuplicationIDCheck(form) {
 alert("아이디 중복체크를 클릭하셨습니다.");
}

// 년도를 입력받아서 가능한 년도인지를 체크한다.
function CheckYear(year) {
 var today = new Date();
 if(parseInt(year.value) > parseInt(today.getYear())) {
  alert(today.getYear()+"년도 보다 큽니다.\n\n다시 입력해 주세요.");
  return false;
 }
 return true;
}

// 월을 입력받아서 가능한 월인지를 체크한다.
function CheckMonth(year, month) {
 var today = new Date();
 if(parseInt(year.value) >= today.getYear()) {
  if(parseInt(month.value) > today.getMonth()+1) {
   alert(today.getYear()+"년 "+(today.getMonth()+1)+"월보다 큽니다.\n\n다시 입력해 주세요.");
   return false;
  }
 }
 if(parseInt(month.value) < 1 || parseInt(month.value) > 12) {
  alert("1월부터 12월까지의 범위를 벗어났습니다.\n\n다시 입력해 주세요.");
  return false;
 }
 return true;
}

// 년/월/일을 입력받아서 가능한 일인지를 체크한다 - 윤년포함.
function CheckDay(cyear, cmonth, cday) {
 var today = new Date();
 var year = parseInt(cyear.value);
 var month = parseInt(cmonth.value);
 var day = parseInt(cday.value);
 if(parseInt(year) >= today.getYear() && parseInt(month) >= today.getMonth()+1) {
  if(parseInt(day) > today.getDate()) {
   alert(today.getYear()+"년 "+(today.getMonth()+1)+"월 "+today.getDate()+"일보다 큽니다.\n\n다시 입력해 주세요.");
   return false;
  }
 }

 if(checkLeapYear(year, month) < day) {
  alert(year+"년 "+month+"월은 "+checkLeapYear(year, month)+"일까지만 존재합니다.\n\n다시 입력해 주세요.");
  return false;
 }
 return true;
}

// 용 도 : 입력 값이 NULL인지 체크
// return : boolean  
//          NULL이면 true, 아니면 false가 돌아간다.
function isNull(input) {
 if(input.value == null || input.value == "") return true;
 return false;
}

// 용 도 : 입력 값이 NULL인지 확인하여 NULL이면 msg를 출력한다.
// return : boolean  
//          NULL이면 true, 아니면 false가 돌아간다.
function isNullAlert(input, msg) {
    var ret = isNull(input);
 if(ret) alert(msg);
 return ret;
}

// 용 도 : 입력 값에 Space 이외의 의미있는 값이 있는지 체크
// return : boolean  
//          있으면 true, 아니면 false가 돌아간다.
function isEmpty(input) {
 if(input.value == null || input.value.replace(/ /gi,"") == "") return true;
 return false;
}

// 용 도 : 입력 값에 Space 이외의 의미밌는 값이 없으면 msg를 출력한다.
// return : boolean  
//           space 이외의 의미있는 값이 없으면 true, 아니면 false가 돌아간다.
function isEmptyAlert(input, msg) {
 var ret = isEmpty(input);
 if(ret) alert(msg);
 return ret;
}

// 용 도 : 입력 값에 특정 문자(chars)가 있는지 체크한다. 특정 문자를 허용하지 않으려 할 때 사용
// return : boolean
//          있으면 true, 없으면 false 
// 사 용 예 : if(containsChars(form.name,"!,*&^%$#@~;")) {
//               alert("이름 필드에는 특수 문자를 사용할 수 없습니다.");
//           }
function containsChars(input, chars) {
 for(var inx = 0; inx < input.value.length; inx++)
  if(chars.indexOf(input.value.charAt(inx)) != -1)
  return true;
 return false;
}

// 용 도 : 입력 값이 특정 문자(chars)만으로 되어있는지 체크한다. 특정 문자만 허용하려 할 때 사용
// return : boolean
//          확인하려는 대상 문자만 있으면 true, 아니면 false
// 사 용 예 : if(!containsCharsOnly(form.blood,"ABO")) {
//               alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");
//           }
function containsCharsOnly(input, chars) {
 for (var inx = 0; inx < input.value.length; inx++)
  if(chars.indexOf(input.value.charAt(inx)) == -1)
   return false;
 return true;
}

// 용 도 : 입력 값이 알파벳인지 체크한다. 
//        아래 isAlphabet() 부터 isNumComma()까지의 메소드가 자주 쓰이는 경우에는 var chars 변수를 global 변수로 선언하고 사용하도록 한다.
// return : boolean, A에서 Z 까지의 문자만으로 되어있으면 true, 아니면 false
// 사 용 예 : ex) var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
//               var lowercase = "abcdefghijklmnopqrstuvwxyz"; 
//               var number = "0123456789";
//               function isAlphaNum(input) {
//                   var chars = uppercase + lowercase + number;
//                   return containsCharsOnly(input,chars);
//               }
function isAlphabet(input) {
 var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
 return containsCharsOnly(input, chars);
}

// 용 도 : 입력 값이 알파벳인지 확인하여 알파벳 이외의 문자가 있으면 "영문자만 입력가능 합니다." 메시지를 보여주고 결과를 돌려준다.
// return : boolean, A에서 Z 까지의 문자만으로 되어있으면 true, 아니면 false
function isAlphabetAlert(input) {
 var ret = isAlphabet(input);
 if(!ret) alert("영문자만 입력가능 합니다.");
 return ret;
}

// 용 도 : 입력 값이 알파벳 대문자인지 체크
// return : boolean, 대문자만이면 true, 아니면 false  
function isUpperCase(input) {
 var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 return containsCharsOnly(input, chars);
}

// 용 도 : 입력 값이 알파벳 대문자인지 확인하여 대문자 이외의 문자가 있으면 "알파벳 대문자만 입력하실 수 있습니다."라는 메시지를 보여주고 돌려준다.
// return : boolean, 대문자만이면 true, 아니면 false  
function isUpperCaseAlert(input) {
 var ret = isUpperCase(input);
 if(!ret) alert("알파벳 대문자만 입력하실 수 있습니다.");
 return ret;
}

// 용 도 : 입력 값이 알파벳 소문자인지 체크
// return : boolean 소문자만이면 true, 아니면 false
function isLowerCase(input) {
 var chars = "abcdefghijklmnopqrstuvwxyz";
 return containsCharsOnly(input, chars);
}

// 용 도 : 입력 값이 알파벳 소문자인지 확인하여 소문자 이외의 문자가 있으면  "알파벳 소문자만 입력하실 수 있습니다."라는 메시지를 보여주고 돌려준다.
// return :  boolean  소문자만이면 true, 아니면 false
function isLowerCaseAlert(input) {
 var ret = isLowerCase(input);
 if(!ret) alert("알파벳 소문자만 입력하실 수 있습니다.");
 return ret;
}

// 용 도 : 입력 값에 숫자만 있는지 체크
// return : boolean 숫자만 있으면 true, 아니면 false 
function isNumber(input) {
 var chars = "0123456789";
 return containsCharsOnly(input, chars);
}

// 용 도 : 입력 값에 숫자만 있는지 확인하여 숫자 이외의 문자가 있으면 "숫자만 입력 가능합니다"라는 메시지를 보여주고 돌려준다.
// return :  boolean 숫자만 있으면 true, 아니면 false   
function isNumberAlert(input) {
 var ret = isNumber(input);
 if(!ret) alert("숫자만 입력 가능합니다");
 return ret;
}

// 용 도 : 입력 값이 알파벳, 숫자로 되어있는지 체크
// return : boolean 알파벳과 숫자만이면 true, 아니면 false  
function isAlphaNum(input) {
 var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
 return containsCharsOnly(input, chars);
}

// 용 도 : 입력 값이 알파벳, 숫자로 되어있는지 확인하여 알파벳과 숫자 이외의 문자가 있으면 "영문자와 숫자 입력만 가능합니다."라는 메시지를 보여주고 돌려준다.
// return : boolean 알파벳과 숫자만이면 true, 아니면 false
function isAlphaNumAlert(input) {
    var ret = isAlphaNum(input);
 if(!ret) alert("영문자와 숫자 입력만 가능합니다.");
 return ret;
}

// 용 도 : 입력 값이 숫자,대시(-)로 되어있는지 체크
// return : boolean 숫자와 대시(-)로 되어 있으면 true, 아니면 false  
function isNumDash(input) {
 var chars = "-0123456789";
 return containsCharsOnly(input,chars);
}

// 용 도 : 입력 값이 숫자,대시(-)로 되어있는지 확인하여 숫자와 대시(-) 이외의 문자가 있으면 체크 "숫자와 '-' 입력만 가능합니다."라는 메시지를 보여주고 돌려준다.
// return :  boolean 숫자와 대시(-)로 되어 있으면 true, 아니면 false
function isNumDashAlert(input) {
 var ret = isNumDash(input);
 if(!ret) alert(" 숫자와 '-' 입력만 가능합니다.");
 return ret;
}

// 용 도 : 입력 값이 숫자,콤마(,)로 되어있는지 체크
// return : boolean 숫자와 콤마(,)로 되어 있으면 true 아니면 false 
function isNumComma(input) {
 var chars = ",0123456789";
 return containsCharsOnly(input,chars);
}

// 용 도 : 입력 값이 숫자,콤마(,)로 되어있는지 확인하여 숫자와 콤마(,) 이외의 문자가 있으면 체크 " 숫자와 ',' 입력만 가능합니다."라는 메시지를 보여주고 돌려준다.
// return :  boolean  숫자와 콤마(,)로 되어 있으면 true, 아니면 false
function isNumCommaAlert(input) {
 var ret = isNumComma(input);
 if(!ret) alert("숫자와 ',' 입력만 가능합니다.");
 return ret;
}

// 용 도 : 입력 값에서 콤마를 없앤다.
// return : string, 입력값에서 콤마를 없앤 값 
function removeComma(input) {
 return input.value.replace(/,/gi,"");
}

// 용 도 : 입력 값이 사용자가 정의한 포맷 형식인지 체크한다. 자세한 format 형식은 자바스크립트의 'regular expression'을 참조
// return : boolean 올바른 포맷이면 true, 아니면 false 
function isValidFormat(input, format) {
 if(input.value.search(format) != -1) return true; //올바른 포맷 형식
 return false;
}

// 용 도 : 입력 값이 사용자가 정의한 포맷 형식인지 확인하여 올바르지 않은 형식이면 "올바른 입력형식이 아닙니다." 메시지를 보여주고 돌려준다.
// return : boolean 올바른 포맷이면 true, 아니면 false
function isValidFormatAlert(input, format) {
 var ret = isValidFormat(input, format);
 if(!ret) alert("올바른 입력형식이 아닙니다.");
 return ret;
}

//용 도 : 입력 값이 이메일 형식인지 체크
// return : boolean 이메일 형식이면 true, 아니면 false
function isValidEmail(input) {
 var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
 return isValidFormat(input, format);
}

//용 도 : 입력 값이 이메일 형식인지 확인하여 올바르지 않으면 "이메일 입력형식이 잘못되었습니다. \n 확인후 다시 입력해 주세요."라는 메시지를 보여주고 돌려준다.
// return :  boolean 이메일 형식이면 true, 아니면 false
function isValidEmailAlert(input) {
 var ret = isValidEmail(input);
 if(!ret) alert("이메일 입력형식이 잘못되었습니다. \n 확인후 다시 입력해 주세요.");
 return ret;
}

// 용 도 : 입력 값이 전화번호 형식(숫자-숫자-숫자)인지 체크
// return : boolean 전화번호 형식이면 true, 아니면 false 
function isValidPhone(input) {
    var format = /^(\d+)-(\d+)-(\d+)$/;
    return isValidFormat(input, format);
}

// 용 도 : 입력 값이 전화번호 형식(숫자-숫자-숫자)인지 확인하여 전화번호 형식이 아니면 "전화번호 입력이 잘못되었습니다. \n 확인후 다시 입력해 주세요."라는 메시지를 보여주고 돌려준다.
// return : boolean 전화번호 형식이면 true, 아니면 false
function isValidPhoneAlert(input) {
 var ret = isValidPhone(input);
 if(!ret) alert("전화번호 입력이 잘못되었습니다. \n 확인후 다시 입력해 주세요.");
 return ret;
}

// 용 도 : 선택된 라디오버튼이 있는지 체크
// return : boolean 있으면 true, 없으면 false
function hasCheckedRadio(input) {
 if(input.length > 1) {
  for(var inx = 0; inx < input.length; inx++)
   if(input[inx].checked) return true;
 } else {
  if(input.checked)
   return true;
 }
 return false;
}

// 용 도 : 선택된 라디오 버튼이 있는지 확인하여 없으면 "선택항목을 적어도 한개는 선택해주세요."라는 메시지를 보여주고 돌려준다.
// return : boolean 있으면 true, 없으면 false
function hasCheckedRadioAlert(input) {
 var ret=hasCheckedRadio(input);
 if(!ret) alert("선택항목을 적어도 한개는 선택해주세요.");
 return ret;
}

// 용 도 : 선택된 체크 박스가 있는지 체크
// return : boolean 있으면 true, 없으면 false
function hasCheckedBox(input) {
 return hasCheckedRadio(input);
}

// 용 도 : 선택된 체크박스가 있는지 확인하여 없으면 "선택항목을 적어도 한개는 선택해주세요."라는 메시지를 보여주고 돌려준다.
// return : boolean 있으면 true, 없으면 false
function hasCheckedBoxAlert(input) {
 var ret=hasCheckedRadio(input);
 if(!ret) alert("선택항목을 적어도 한개는 선택해주세요.");
 return ret;
}

// 용 도 : 입력 값의 바이트 길이를 리턴
// return : int, 입력값의 길이 
function getByteLength(input) {
 var byteLength = 0;
 for(var inx = 0; inx < input.value.length; inx++) {
  var oneChar = escape(input.value.charAt(inx));
  if(oneChar.length == 1) {
   byteLength ++;
  } else if(oneChar.indexOf("%u") != -1) {
   byteLength += 2;
  } else if(oneChar.indexOf("%") != -1) {
   byteLength += oneChar.length/3;
  }
 }
 return byteLength;
}

// 용 도 : 공백을 제거하는 함수
// return : string, 공백을 제거한 문자열 
function IsTrimStr(checkStr) {
 var str = "";
 for(var i = 0; i < checkStr.length; i++) {
  ch = checkStr.charAt(i);
  if(ch != " ") str += ch;
 }
 return str;
}

// 용 도 : 주민번호 체크 
// 형 식 : xxxxxx-yyyyyyy
// return :  boolean 
function newJumin(value) {
 this.value = value;
}

function common_Jumin_Check(jumin1, jumin2) {
 var ok = true;
 var Str1 = "" + jumin1 + jumin2;
 var Str = new newJumin(Str1);
 return jumin_Check(Str);
}

// 용 도 : 주민번호 체크
// 형 식 : xxxxxxyyyyyyy
// return :  boolean 
// 매개변수 : 주민등록번호 13자리
// 사 용 예 : jumin_Check(xxxxxxyyyyyyy); 
// 참고사항 : 주민등록번호가 잘못되었다면 주민등록번호가 잘못되었다는 메세지를 출력하고 boolean 을 return 한다.
function jumin_Check(juminnum) {
   if(!jumin_Check_Confirm(juminnum)) 
      alert("주민등록번호가 잘못 되었습니다.\n확인후 다시 입력해 주십시오");
}

// 용 도 : 주민번호 체크
// 형 식 : xxxxxxyyyyyyy
// return :  boolean 
// 매개변수 : 주민등록번호 13자리
// 사 용 예 : jumin_Check_Confirm(xxxxxxyyyyyyy); 
// 참고사항 : 주민등록번호가 잘못되어도 메세지를 출력하지 않고 boolean 만 return 한다.
function jumin_Check_Confirm(juminnum) {
 var ok = true;
 var Str = "" + juminnum.value;
 var sum = 0;
 sum = Str.charAt( 0 ) * 2 + Str.charAt( 1 ) * 3 + Str.charAt( 2 ) * 4 + Str.charAt( 3 ) * 5 +
    Str.charAt( 4 ) * 6 + Str.charAt( 5 ) * 7 + Str.charAt( 6 ) * 8 + Str.charAt( 7 ) * 9 +
    Str.charAt( 8 ) * 2 + Str.charAt( 9 ) * 3 + Str.charAt( 10) * 4 + Str.charAt( 11) * 5;
 if(sum == "0")
  return false;
 else {
  sum = sum % 11;
  sum = 11 - sum;
  if(sum > 9) sum = sum - 10;

  if(sum == Str.charAt(12)) {
   return true;
  } else {
   juminnum.focus();
   return false;
  }
 }
}

// 용 도 : 사업자등록번호를 확인 
// 형 식 : XXXXXXXXXX
// return : boolean 맞으면 true, 아니면 false
function RegNoCheck(membNo) {
 if(membNo.length == 10) {
  a = membNo.charAt(0);
  b = membNo.charAt(1);
  c = membNo.charAt(2);
  d = membNo.charAt(3);
  e = membNo.charAt(4);
  f = membNo.charAt(5);
  g = membNo.charAt(6);
  h = membNo.charAt(7);
  i = membNo.charAt(8);
  Os = membNo.charAt(9);

  suma = a*1 + b*3 + c*7 + d*1 + e*3 + f*7 + g*1 + h*3;
  sumb = (i*5) %10;
  sumc = parseInt((i*5) / 10,10);
  sumd = sumb + sumc; 
  sume = suma + sumd;
  sumf = a + b + c + d + e + f + g + h + i
  k = sume % 10;
  Modvalue = 10 - k;
  LastVal = Modvalue % 10;

  if(sumf == 0) return false;
 } else return false;

 if(Osub == LastVal) return true;
 else return false;
}

// 용 도 : 사업자등록번호를 확인하여 비정상적이면 "사업자 등록번호가 잘못되었습니다. \n확인후 다시 입력해 주십시오"라는 메시지를 보여주고 돌려준다.
// 형 식 : XXXXXXXXXX
// return : boolean 맞으면 true, 아니면 false
function RegNO_check(membNo) {
 var bRet = RegNoCheck(membNo);
 if(!bRet) alert("사업자 등록번호가 잘못 되었습니다.\n확인후 다시 입력해 주십시오");
 return bRet;
}

// 용 도 : 사업자등록번호를 확인하여 비정상적이면 "사업자 등록번호가 잘못되었습니다. \n확인후 다시 입력해 주십시오"라는 메시지를 보여주고 돌려준다.
// 형 식 : XXX-XX-XXXXX
// return : boolean 맞으면 true, 아니면 false
function RegNO_check_formatted(membNo) {
 var str = "";
 var ar = membNo.split( "-" );
 for(var i = 0; i < ar.length; i++) str += ar[i];
 return RegNO_check(str);
}

// 용 도 : 임의의 HTML 테그 내용을 변경
// 매개변수 : obj - 구성할 HTML Tag Object html - Tag 이름
// return : void
function makeTags(obj, html) {
 var tmp = obj.outerHTML;
 var idx = 0;
 if(IsTrimStr(obj.innerHTML).length <= 0)
  idx = tmp.indexOf( "</" + obj.tagName + ">" );
 else
  idx = tmp.indexOf(obj.innerHTML);
 tmp = tmp.substring(0, idx);
 tmp += html;
 tmp += "</" + obj.tagName + ">";
 obj.outerHTML = tmp;
}

// 용 도 : ComboCreater.getComboOption()의 결과를 기초로 
//        콤보의 항목을 변경
// 매개변수 : obj - 구성할 콤보 Object
//          option - ComboCreater.getComboOption()의 결과
// return  : void
function makeCombo( obj, option ) {
 makeTags( obj, option );
 obj.selectedIndex = 0;
}

// 용 도 : 모달 대화상자 활성화
// param : url : 호출할 URL
//         title : dialog title 명
//         x : 대화상자 x 좌표( 0보다 작으면 Center );
//         y : 대화상자 y 좌표( 0보다 작으면 Center );
//         w : 대화상자 폭
//         h : 대화상자 높이
//return : ret : URL에서 반환활 결과 Object
function showDlg(url, title, x, y, w, h) {
 var bModal = true;
 if(showDlg.arguments.length == 7) {
  bModal = showDlg.arguments[6];
 }
 if(w <= 0 || h <= 0) {
  alert("대화상자 크기를 확인하세요");
  return null;
 }

 var ar = new Array();
 ar[0] = window;
 ar[1] = url;
 ar[2] = title;
 
 var opt = "status:no;scroll:no;help:no;";
 if(x >= 0) opt += "dialogLeft:" + x + "px;";
 if(y >= 0) opt += "dialogTop:"  + y + "px;";
 
 opt += "dialogWidth:"  + w + "px;";
 opt += "dialogHeight:" + h + "px;";

 if(bModal)
  return window.showModalDialog("/common/modalDlg.htm", ar, opt);
 else
  return window.showModelessDialog("/common/modalDlg.htm", ar, opt);
}

// 용 도 : 날짜의 기본 타입에 맞는 함수
//        프로그램이 클릭되어 실행할 때 옵션을 적절히 바꿔준다.
// 매개변수 : 프로그램 form
function chkDateBasicOption(form) {
 today = new Date();
 var currentYear = today.getYear();// 현재년도
 var currentMonth = today.getMonth();// 현재월
 var currentDay = today.getDate();// 현재일

 if(form.cond.selectedIndex == 0) { // 전체
  form.fromYear.value = '/';
  form.fromMonth.value = '/';
  form.fromDay.value = '/';
  form.toYear.value = '/';
  form.toMonth.value = '/';
  form.toDay.value = '/';
 }
 if(form.cond.selectedIndex == 1) { // 당일
  form.fromYear.value = currentYear;
  form.fromMonth.value = currentMonth + 1;
  form.fromDay.value = currentDay;
  form.toYear.value = today.getYear();
  form.toMonth.value = currentMonth + 1;
  form.toDay.value = currentDay;
 }
 if(form.cond.


selectedIndex == 2) { // 전일
  form.fromYear.value = currentYear;
  form.fromMonth.value = currentMonth + 1;
  form.fromDay.value = currentDay - 1;
  form.toYear.value = currentYear;
  form.toMonth.value = currentMonth + 1;
  form.toDay.value = currentDay - 1;
 }
 if(form.cond.selectedIndex == 3) { // 당월
  form.fromYear.value = currentYear;
  form.fromMonth.value = currentMonth + 1;
  form.fromDay.value = '1';
  form.toYear.value = currentYear;
  form.toMonth.value = currentMonth + 1;
  form.toDay.value = checkLeapYear(currentYear, currentMonth + 1);
 }
 if(form.cond.selectedIndex == 4) { // 전월
  form.fromYear.value = currentYear;
  form.fromMonth.value = currentMonth;
  form.fromDay.value = '1';
  form.toYear.value = currentYear;
  form.toMonth.value = currentMonth;
  form.toDay.value = checkLeapYear(currentYear, currentMonth);
  if(currentMonth == 0) {
   form.fromYear.value = currentYear - 1;
   form.fromMonth.value = 12;
   form.toYear.value = currentYear - 1;
   form.toMonth.value = 12;
   form.toDay.value = checkLeapYear(currentYear - 1, 12);
  }
 }
 if(form.cond.selectedIndex >= 5 && form.cond.selectedIndex <= 8) { // 분기
  form.fromYear.value = currentYear;
  form.fromMonth.value = (form.cond.selectedIndex - 5) * 3 + 1;
  form.fromDay.value = '1';
  form.toYear.value = currentYear;
  form.toMonth.value = (form.cond.selectedIndex - 4) * 3;
  if(form.cond.selectedIndex == 6 || form.cond.selectedIndex == 7)
   form.toDay.value = '30';
  else
   form.toDay.value = '31';
 }
 if(form.cond.selectedIndex == 9) { // 당기
  form.fromYear.value = currentYear;
  form.fromMonth.value = '1';
  form.fromDay.value = '1';
  form.toYear.value = currentYear;
  form.toMonth.value = '12';
  form.toDay.value = '31';
 }
 if(form.cond.selectedIndex == 10) { // 전기
  form.fromYear.value = currentYear - 1;
  form.fromMonth.value = '1';
  form.fromDay.value = '1';
  form.toYear.value = currentYear - 1;
  form.toMonth.value = '12';
  form.toDay.value = '31';
 }
}

// 용도 : 윤년 및 해당 월의 최종 날짜 체크
function checkLeapYear(year, month) {
 var stat = false;
 var dday = 31;

 if(year%4 == 0) {
  if(year%100 == 0) {
   if(year%400 == 0) {
    stat = true;
   }
  } else {
   stat = true;
  }
 }
 if(stat) {
  switch(month) {
   case 1: case 3: case 5: case 7: case 8: case 10: case 12: dday = 31; break;
   case 4: case 6: case 9: case 11: dday = 30; break;
   case 2: dday = 29; break;
  }
 } else {
  switch(month) {
   case 1: case 3: case 5: case 7: case 8: case 10: case 12: dday = 31; break;
   case 4: case 6: case 9: case 11: dday = 30; break;
   case 2: dday = 28; break;
  }
 }
 return dday;
}

// 용 도 : 날짜 파라미터 셋팅
// 매개변수 : form, 시작 날짜를 셋팅 할 object, 종료 날짜를 셋팅 할 object
// 작성자 : 최철웅
function setDate(frm, fobj,tobj){

 var fdate = frm.fromYear.value + frm.fromMonth.value + frm.fromDay.value;
 var tdate = frm.toYear.value +  frm.toMonth.value + frm.toDay.value;
  
 if(fdate.length > 0){
  if(frm.fromYear.value.length == 0 || frm.fromMonth.value.length == 0 || frm.fromDay.value.length == 0){
   alert("날짜 조건이 부정확합니다.");
   return false;
  }else{
   fdate = frm.fromYear.value;
   if(frm.fromMonth.value.length < 2) fdate += "0" + frm.fromMonth.value;
   else fdate += frm.fromMonth.value;
   if(frm.fromDay.value.length < 2) fdate += "0"+ frm.fromDay.value;
   else fdate += frm.fromDay.value;

   fobj.value = fdate;
  }
 }

 if(tdate.length > 0){
  if(frm.toYear.value.length == 0 || frm.toMonth.value.length == 0 || frm.toDay.value.length == 0){
   alert("날짜 조건이 부정확합니다.");
   return false;
  }else{
   tdate = frm.toYear.value
   if(frm.toMonth.value.length < 2) tdate += "0" + frm.toMonth.value;
   else tdate += frm.toMonth.value;
   if(frm.toDay.value.length < 2) tdate += "0"+ frm.toDay.value;
   else tdate += frm.toDay.value;

   tobj.value = tdate;
  }
 }
 
 return true;
}

// 용 도 : 폼 강제 reset
// 매개변수 : 프로그램 form
// 작성자 : 최철웅
function formReset(frm){

 for(i = 0 ; i < frm.length ; i++){
  var obj = frm.elements[i];
  if( obj.type.toLowerCase() == "submit" || 
    obj.type.toLowerCase() == "reset" ||
    obj.type.toLowerCase() == "button" ||
    obj.type.toLowerCase() == "image" ||
    obj.type.toLowerCase() == "checkbox" ){
  }else{
   obj.value = '/';
  }
 }
}

// setFormObj 함수에서 정의된 값들을 체크한다.
// Object name이 select이면 "값을 선택하세요."를 보여주고 false를 리턴.
// Object name이 text이면 "값을 입력하세요."를 보여주고 false를 리턴.
function checkBeforeSubmit(form, FormObj) {
 for(var i = 0; i < FormObj.length; i++) {
  for(var j = 0; j < form.length; j++) {
   if(FormObj[i] == form.elements[j].name) {
    if(IsTrimStr(form.elements[j].value) == "") {
     var msg = "";
     if(form.elements[j].type == "select-one")
      msg = "값을 선택하세요.";
     else if(form.elements[j].type == "text" || form.elements[j].type == "textarea")
      msg = "값을 입력하세요.";

     alert(msg); form.elements[j].focus(); return false; break;
    } else {
     if(i == (FormObj.length-1))
      return true;
     else
      continue;
    }
   }
  }
 }
}

// 일정 길이를 입력받은 후에 포커스이동
function FocusAutoMove(leng, oldObj, nextObj) {
 var objLeng = oldObj.value.length;
 if(objLeng == leng) nextObj.focus();
}


// 아이디 중복체크...
function DuplicateUserid(form, url, wsize, hsize) {
 if(!ChkForm(form.userid, "userid", "아이디는", 4, 13)) return;
 CommonPopup('/'+url+'?userid='+form.userid.value, 'IDcheck', 'width='+wsize+',height='+hsize+',scrollbars=no');
}


// 월/일의 경우 10일미만 일 때 "0"를 붙여서 리턴한다.
function CheckDateLength(val) {
 if(val.length <= 1) return "0"+val;
 else return val
}


/**
 설명: 주민등록번호에서 생년월일 추출 하여 생년월일 자동 입력
 작성자: FID 개발5팀 glassel@fid.co.kr
 작성일: 2003-07-24 오후 12:56
 @param thisForm : 해당 폼의 오프젝트
**/
function inBirthDay(thisForm){
 with(thisForm){
  var birthDay = ssn1.value;
  var millen = ssn2.value;

  var year = parseInt(birthDay.substring(0,2));
  var month = birthDay.substring(2,4);
  var day = birthDay.substring(4,6);
  var divid = parseInt(millen.substring(0,1));

  if(divid < 3) year += 1900;
  else    year += 2000;

  byear.value = year;
  bmonth.value = month;
  bday.value = day;
 }
}

/**
 설명: 쿠키 값을 가져온다.
 작성자: FID 개발5팀 glassel@fid.co.kr
 작성일: 2003-07-24 오후 12:56
 @param NameCookie : 키 값
**/
function GetCookie(NameCookie) {
 var i = document.cookie.indexOf(NameCookie + "=" );
 if(i != -1){
  i += NameCookie.length + 1;
  NameEnd = document.cookie.indexOf(";", i);
  if(NameEnd==-1)
   NameEnd = document.cookie.length;
  return unescape(document.cookie.substring(i, NameEnd));
 } else
  return "";
}

/**************************************** 팝업 관련 시작 ****************************************/

function openPopup(url) {
 window.open(url);
}

// 컨택어스
function Contactus() {
 CommonPopup("/customer/contactus/contactus.html", "contactus", "width=0,height=0");
}

// 개인정보보호정책
function Privacy() {
 CommonPopup("/member/joinus/privacy.html", "privacy", "width=616,height=600,scrollbars=yes");
}

// 개인정보보호정책
function Commonpopup(url,name,width,height,scrollbars) {
 CommonPopup(url, name, "width="+width+",height="+height+",scrollbars="+scrollbars);
}

function CommonPopup(url,name,width,height,scrollbars) {
 CommonPopup(url, name, "width="+width+",height="+height+",scrollbars="+scrollbars);
}

function CommonPopup(url) {
 Common.Popup(url, "", "");
}

function CommonPopup(url, winname) {
 Common.Popup(url, winname, "");
}

function CommonPopup(url, winname, feature) {
 var common_popup = window.open(url, winname, feature);
 common_popup.focus();
}

function CommonPopupBack(url, winname, feature) {
 window.history.back();
 var common_popup = window.open(url, winname, feature);
 common_popup.focus();
}

//2003-08-17 추가(황성열 : syhwang@fid.co.kr)

function addWishList(pid){
 if(pid.length > 0)
  location.href = "proc_wishlist.jsp?pid="+pid+"&type=Ins" ;
 else
  alert('상품정보가 없습니다.');
}//end function 

//2003-08-18 추가 (황성열 : syhwang@fid.co.kr)
function procProdSearch(form){

 if(form.keyword.value.length == 0){
  alert('검색할 상품명을 입력하십시오.');
 }else{
  form.submit();
 }//end if

}//end function 

//2003-09-01 추가 (김종순 : aign@fid.co.kr)
function go(url) {
 opener.location = url;
 self.close();
}

/**************************************** 팝업 관련 종료 ****************************************/

/*
 * 이튠 플래쉬 메뉴에 사용되는 메서드 (수정중)
 * 작성일자 2003-08-08 오후 2:37 
 */

function pageLink(url) {
 window.location.href = url;
}

//story
function story() { pageLink('/story/brand/brand_story.jsp'); }
function brand() { pageLink('/story/brand/brand_story.jsp'); }
function product() { pageLink('/story/product/cleansing.jsp'); }
function cleansing() { pageLink('/story/product/cleansing.jsp'); }
function mask() { pageLink('/story/product/mask.jsp'); }
function skin() { pageLink('/story/product/skin.jsp'); }
function moisturizing() { pageLink('/story/product/moisturizing.jsp'); }
function cream() { pageLink('/story/product/intensive_cream.jsp'); }
function spCare() { pageLink('/story/product/special_care.jsp'); }

//beauty
function beauty() { pageLink('/beauty/skintest/skintest.jsp'); }
function skinTest() { pageLink('/beauty/skintest/skintest.jsp'); }
function clinic() { pageLink('/beauty/clinic/product/list.jsp'); }
function counselProd() { pageLink('/beauty/clinic/product/list.jsp'); }
function counselCare() { pageLink('/beauty/clinic/skincare/list.jsp'); }
function skinTips() { pageLink('/beauty/tips/tips_03.jsp'); }
function skinTalk() { pageLink('/beauty/talk/list.jsp'); }

//people
function people() { pageLink('/people/forum/list.jsp'); }
function forum() { pageLink('/people/forum/list.jsp'); }

//mania
function mania() { pageLink('/mania/'); }
function maniaSub() { pageLink('/mania/'); }
function maniaBoard() { pageLink('/mania/board/list.jsp'); }
function maniaReview() { pageLink('/mania/review/main.jsp'); }

//MyEtune
function myEtune() { pageLink('/myetune/main/main.jsp'); }
function calendar() { pageLink('/myetune/calendar/calendar.jsp'); }
function skinType() { pageLink('/myetune/skintype/skintype.jsp'); }
function myPoint() { pageLink('/myetune/point/point.jsp'); }
function service() { pageLink('/'); }
function pds() { pageLink('/myetune/wallpaper/wallpaper.jsp'); }

//shopping
function shopMain() { pageLink('/shopping/'); }
function shopping() { pageLink('/'); }
function shopClean() { pageLink('/shopping/display/cleansing_care.jsp?cid1=A'); }
function shopBasic() { pageLink('/shopping/display/basic_care.jsp?cid1=B'); }
function shopSpecial() { pageLink('/shopping/display/special_care.jsp?cid1=C'); }
function shopGift() { pageLink('/shopping/display/planning_set.jsp?cid1=F'); }
function prodThisMonth() { pageLink('/shopping/month/monthly_product.jsp'); }
function orderUse() { pageLink('/shopping/usingorder/using_order.jsp'); }
function afterUse() { pageLink('/shopping/afteruse/list.jsp'); }
function cart() { pageLink('/shopping/cart/viewcart.jsp'); }
function guide() { pageLink('/shopping/guide/using_guide.jsp'); }
function inquire() { pageLink('/shopping/delivery/search_list.jsp'); }
function wishList() { pageLink('/shopping/wishlist/wishlist.jsp'); }


//etc
function goHome() { pageLink('/'); }
function goMembership() { pageLink('/member/joinus/modify.jsp'); }
function goEvent() { pageLink('/event/list.jsp'); }
function goFaq() { pageLink('/help/faq/list.jsp'); }
function goQna() { pageLink('/help/qna/qna_write.jsp'); }
function goSiteMap() { pageLink('/help/sitemap/sitemap.jsp'); }
function goEvent() { pageLink('/event/list.jsp'); }
function goSample() { pageLink('/help/sample/sampleOrder.jsp'); }


function regMem() { pageLink('/member/joinus/certify.jsp'); }
function editMem() { pageLink('/member/joinus/modify.jsp'); }
function delMem() { pageLink('/member/joinus/memDel.jsp'); }

function faqProduct() { pageLink('/help/faq/list.jsp?subcode=033'); }
function faqMember() { pageLink('/help/faq/list.jsp?subcode=034'); }
function faqOrder() { pageLink('/help/faq/list.jsp?subcode=035'); }
function faqAccount() { pageLink('/help/faq/list.jsp?subcode=035'); }
function faqTrans() { pageLink('/help/faq/list.jsp?subcode=036'); }
function faqRefund() { pageLink('/help/faq/list.jsp?subcode=037'); }
function faqPoint() { pageLink('/help/faq/list.jsp?subcode=038'); }
function faqSample() { pageLink('/help/faq/list.jsp?subcode=039'); }

 

function moveOne(page, oseq){
 document.form1.oseq.value = oseq;
 document.form1.action = page;
 document.form1.submit();
}


// ----------------------------------------------------------------------------
// 기본
// ----------------------------------------------------------------------------

function allBlur(){
 for(i=0;i<document.links.length;i++)
 document.links[i].onfocus=document.links[i].blur;
 //set_url(a);
}


// popup Windows
function openWin(url,winName,intWidth,intHeight) {
        var winPosLeft = (screen.width - intWidth) / 2;
        var winPosTop = (screen.height - intHeight) / 2;
        var winOpt = "width="+intWidth+",height="+intHeight+",top="+winPosTop+",left="+winPosLeft+'location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no';
        var win = window.open(url, winName, winOpt);
  if( win.focus )
   win.focus();
}
function openWin2(url,winName,intWidth,intHeight) {
        var winPosLeft = (screen.width - intWidth) / 2;
        var winPosTop = (screen.height - intHeight) / 2;
        var winOpt = "width="+intWidth+",height="+intHeight+",top="+winPosTop+",left="+winPosLeft+'location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no';
        window.open(url, winName, winOpt);
}

function goto(form) {
var myindex=form.go.selectedIndex
window.location=(form.go.options[myindex].value);
}

function goto_new(form) {
 var windowprops = ""; // 팝업창의 옵션
 var URL = form.go.options[form.go.selectedIndex].value;
 if (URL != "" && URL != null){
  popup = window.





 
댓글쓰기는 회원(로그인 하신분) 이상 가능합니다.


댓글 (0)


폼체크-예제
페이지: 3 / 3   


    회원가입시 사용하는 폼체크 (홈마스타) 2424
 자바스크립트 공통함수(상큼한여) 6797

  [1]  [2]  [3]  

복수단어 검색은 공백(space)로 구분해 주세요. 1



 
최근 글
[손님]





인기 글
[손님]
[홈마스타] 속도감