Notice
Recent Posts
Recent Comments
Link
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Tags
more
Archives
Today
Total
관리 메뉴

WON.dev

chapter : JOIN_JS 본문

WEB.JS/10.EVENT_JS

chapter : JOIN_JS

GAWON 2023. 5. 22. 09:20
var f;

window.onload = function(){
	f = document.forms.myForm;
}
    
// 1. 아이디 체크
function idCheck() {
	var regId = /^[0-9a-z]{8,16}$/;		// 아이디 정규식
	var label = document.getElementById("id-label");
	
	if ( !regId.exec(f.id.value) ) {
		label.innerHTML = "아이디: 8~16자, 소문자+숫자";
		label.setAttribute("class", "a");
	} else {
		label.innerHTML = "멋진 아이디네요!";
		label.setAttribute("class", "b");
	}
}

// 2. 비밀번호 체크
function pwCheck1() {
	var regPw = /^[0-9a-zA-Z]{8,16}$/;	// 비밀번호 정규식
	var label = document.getElementById("pw-label1");
	if ( !regPw.exec(f.pw1.value) ) {
		label.innerHTML = "비밀번호: 8~16자, 대문자+소문자+숫자";
		label.setAttribute("class", "a");
	} else {
		label.innerHTML = "사용 가능한 비밀번호!";
		label.setAttribute("class", "b");
	}
}
		
// 3. 비밀번호 한 번 더!
function pwCheck2() {
	var label = document.getElementById("pw-label2");
	if ( f.pw1.value != f.pw2.value ) {
		label.innerHTML = "비밀번호를 확인하세요.";
		label.setAttribute("class", "a");
	} else {
		label.innerHTML = "비밀번호 확인 완료!";
		label.setAttribute("class", "b");
	}
}

// 4. 주민등록번호 포커스 이동
function moveFocus1() {
	if (f.sn1.value.length == 6) {
		f.sn2.value = "";
		f.sn2.focus();
	}
}

// 5. 주민등록번호 검증 자동 실행
function moveFocus2() {
	if (f.sn1.value.length == 6 && f.sn2.value.length == 7) {
		snCheck();
	}
}

// 6. 주민등록번호 -> 생년월일 + 성별 자동 삽입
function snCheck () {
	// 주민등록번호 검증
	// 주민등록번호 각 자리를 다음 수와 곱해서 합을 구한다. (마지막 자리는 사용 안 함)
	// 2 3 4 5 6 7 - 8 9 1 2 3 4 X
	// (11-합%11)%10 == 마지막자리 : 올바른 주민등록번호
	var total = 0;
	for ( var i = 0; i < f.sn1.value.length; i++ ) {
		total += (f.sn1.value.charAt(i) * (i+2));
	}
	for ( var i = 0; i < f.sn2.value.length-1; i++ ) {
		if ( i < 2 ) {
			total += (f.sn2.value.charAt(i) * (8+i));
		} else {
			total += (f.sn2.value.charAt(i) * i);
		}
	}
	if ( (11 - (total % 11)) % 10 != parseInt(f.sn2.value.charAt(6)) ) {
		alert("올바른 주민등록번호가 아닙니다.");
		f.sn1.value = "";
		f.sn2.value = "";
		f.sn1.focus();
		//return;
	}
	// 생년월일 자동 등록
	switch ( f.sn2.value.charAt(0) ) {
	case "1":	case "2":	case "5":	case "6":
		f.year.value = "19" + f.sn1.value.substring(0, 2);	// 0이상 2미만
		break;
	case "3":	case "4":	case "7":	case "8":
		f.year.value = "20" + f.sn1.value.substring(0, 2);
	}
	f.month.value = f.sn1.value.substring(2, 4);
	f.day.value = f.sn1.value.substring(4, 6);
	// 성별 자동 등록
	if ( f.sn2.value.charAt(0) % 2 == 0 ) {
		f.gender.value = "female";
	} else {
		f.gender.value = "male";
	}
}

// 7. 서브밋
function goToLogin() {
	f.action="#";
	f.submit();
}

'WEB.JS > 10.EVENT_JS' 카테고리의 다른 글

chapter03 : 이벤트_객체  (0) 2023.05.22
chapter04 : 디폴트_이벤트  (0) 2023.05.22
chapter05 : 마우스_이벤트  (0) 2023.05.22
chapter06 : 키보드_이벤트  (0) 2023.05.22
chapter07 : 키보드_이벤트  (0) 2023.05.22