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();
}