웹모아
웹모아[손님] 검색 로그인   
웹모아
 
폼체크-예제
 


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


//////////////////////////////////////////////////////////////////////////
// 자바스크립트 공통함수 //
// //
// 주의: 아래의 모든 메소드는 입력폼의 필드이름(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.open(URL,'',windowprops);
}
}



 댓글 (0)


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

 

  회원가입시 사용하는 폼체크 예제
echo (" ");(홈마스타)     조회(2166)          




  자바스크립트 공통함수
////////////////////////////////////////////////////////////////////////// // 자바스크립트 공통함수 // // // // 주의: 아래의 모든 메소드는 입력폼의 필드이름(myform.myfield)을 // // 파라미(상큼한여자)     조회(4769)          




≪ [1]  [2]  [3]   ≫

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




최근 글
[손님]


인기 글
[손님]