웹마스터 팁
page_full_width">
주민등록번호를 받아 자동으로 폼에 생일, 성별 체크해주기
2003.03.06 10:54
주소록을 만들면서 한번 만들어 보았습니다.
궁금해 하시는 분이 많으신거 같아서 한번 올려 봅니다.
php로 하면 궂이 이런방법을 쓰지 않고도 할 수는 있지만
자바스크립트로도 할 수 있는 방법을 한번 알아 봅시다.
소스설명
<script>
//주민번호 첫번째 입력값의 범위가 6이 되면 자동으로 두번째로 포커스가 이동합니다.
function check_jumin(form) {
if(ipt.jumin1.value.length > 5) {
ipt.jumin2.focus();
}
}
//주민번호 두번째 입력값의 범위가 7이 되면 자동으로 submit로 포커스가 이동합니다.
function check_jumin2(form) {
if(ipt.jumin2.value.length > 6) {
ipt.submit.focus();
}
}
//birth라는 변수에 주민번호 첫번째 입력폼의 값을 저장시킨후에 substring(,)이라는 함수로 값을 판별하여 해당폼에 값을 넣어줍니다.
function check_birth() {
var birth = document.ipt.jumin1.value; //변수로 값저장
if (birth.substring(0,2) > 03) //만약 첫번째가 03보다 크다면
//(현재 2003년이기 때문에 2000~2003년 출생자들은 2000~2003년으로 생일이 입력됩니다. 04 이상이라면 1904이후로 입력됩니다.)
document.ipt.birth_y.value = "19"+birth.substring(0,2);
else //아니라면 앞에 20을 붙여 2000년 이후 출생자로
document.ipt.birth_y.value = "20"+birth.substring(0,2);
if (birth.substring(2,3) == "0") //여기는 03 같이 한자리수달에 태어난 사람들은 자동으로 0을 때어 입력하게 하는 겁니다.
document.ipt.birth_m.value = birth.substring(3,4);
else
document.ipt.birth_m.value = birth.substring(2,4);
if (birth.substring(4,5) == "0")
document.ipt.birth_d.value = birth.substring(5,6);
else
document.ipt.birth_d.value = birth.substring(4,6);
}
//주민 번호 뒷자리에서 첫번째 숫자를 판별하여 라디오버튼에 입력을 하게 합니다. 2000년 이후 출생자들은 3,4 가 붙기때문에 그것까지 고려를 했습니다. 라디오 버튼특성상 여러 버튼들은 배열로 구분합니다. click()메소드는 라디오버튼을 클릭한것과 같습니다.
function check_sex(){
var chs = document.ipt.jumin2.value.substring(0,1);
if (chs == "1" || chs == "3") ipt.sex[0].click();
else if (chs == "2" || chs == "4") ipt.sex[1].click();
}
</script>
<form method=post action='' name=ipt>
<input type=text name=jumin1 size=6 maxlength=6 onkeyup='check_jumin(this.form)' onBlur='check_birth();'>
-
<input type=text name=jumin2 size=7 maxlength=7 onkeyup='check_jumin2(this.form)' onBlur='check_sex();'>
<BR>
<input type=text name=birth_y size=4 maxlength=4 readonly> 년
<input type=text name=birth_m size=2 maxlength=2 readonly> 월
<input type=text name=birth_d size=2 maxlength=2 readonly> 일
<BR>
<input type=radio name=sex size=4 maxlength=4 value=m>남
<input type=radio name=sex size=4 maxlength=4 value=f>여
<BR>
<input type=submit value='입 력' name=submit>
</form>
미리보기는 http://myhome.hanafos.com/~jugug/jumins.html 입니다.
잘 응용해서 쓰십시오.
여기에 주민번호 허위판별 스크립트까지 넣어주면 더 좋겠죠?
궁금해 하시는 분이 많으신거 같아서 한번 올려 봅니다.
php로 하면 궂이 이런방법을 쓰지 않고도 할 수는 있지만
자바스크립트로도 할 수 있는 방법을 한번 알아 봅시다.
소스설명
<script>
//주민번호 첫번째 입력값의 범위가 6이 되면 자동으로 두번째로 포커스가 이동합니다.
function check_jumin(form) {
if(ipt.jumin1.value.length > 5) {
ipt.jumin2.focus();
}
}
//주민번호 두번째 입력값의 범위가 7이 되면 자동으로 submit로 포커스가 이동합니다.
function check_jumin2(form) {
if(ipt.jumin2.value.length > 6) {
ipt.submit.focus();
}
}
//birth라는 변수에 주민번호 첫번째 입력폼의 값을 저장시킨후에 substring(,)이라는 함수로 값을 판별하여 해당폼에 값을 넣어줍니다.
function check_birth() {
var birth = document.ipt.jumin1.value; //변수로 값저장
if (birth.substring(0,2) > 03) //만약 첫번째가 03보다 크다면
//(현재 2003년이기 때문에 2000~2003년 출생자들은 2000~2003년으로 생일이 입력됩니다. 04 이상이라면 1904이후로 입력됩니다.)
document.ipt.birth_y.value = "19"+birth.substring(0,2);
else //아니라면 앞에 20을 붙여 2000년 이후 출생자로
document.ipt.birth_y.value = "20"+birth.substring(0,2);
if (birth.substring(2,3) == "0") //여기는 03 같이 한자리수달에 태어난 사람들은 자동으로 0을 때어 입력하게 하는 겁니다.
document.ipt.birth_m.value = birth.substring(3,4);
else
document.ipt.birth_m.value = birth.substring(2,4);
if (birth.substring(4,5) == "0")
document.ipt.birth_d.value = birth.substring(5,6);
else
document.ipt.birth_d.value = birth.substring(4,6);
}
//주민 번호 뒷자리에서 첫번째 숫자를 판별하여 라디오버튼에 입력을 하게 합니다. 2000년 이후 출생자들은 3,4 가 붙기때문에 그것까지 고려를 했습니다. 라디오 버튼특성상 여러 버튼들은 배열로 구분합니다. click()메소드는 라디오버튼을 클릭한것과 같습니다.
function check_sex(){
var chs = document.ipt.jumin2.value.substring(0,1);
if (chs == "1" || chs == "3") ipt.sex[0].click();
else if (chs == "2" || chs == "4") ipt.sex[1].click();
}
</script>
<form method=post action='' name=ipt>
<input type=text name=jumin1 size=6 maxlength=6 onkeyup='check_jumin(this.form)' onBlur='check_birth();'>
-
<input type=text name=jumin2 size=7 maxlength=7 onkeyup='check_jumin2(this.form)' onBlur='check_sex();'>
<BR>
<input type=text name=birth_y size=4 maxlength=4 readonly> 년
<input type=text name=birth_m size=2 maxlength=2 readonly> 월
<input type=text name=birth_d size=2 maxlength=2 readonly> 일
<BR>
<input type=radio name=sex size=4 maxlength=4 value=m>남
<input type=radio name=sex size=4 maxlength=4 value=f>여
<BR>
<input type=submit value='입 력' name=submit>
</form>
미리보기는 http://myhome.hanafos.com/~jugug/jumins.html 입니다.
잘 응용해서 쓰십시오.
여기에 주민번호 허위판별 스크립트까지 넣어주면 더 좋겠죠?
댓글 4
-
[포터]아렌티
2003.03.06 11:29
-
[포터]아렌티
2003.03.06 23:40
jugug // 제뜻은요 ㅠ_ㅠ;;
뒤에 처음글짜가 3이나 4이었을때는 생일에서 20**로 나오게 그러니까..바로 보이게 해달라는거죠 ㅠ_ㅠ;;
확인을 눌렀을때 바뀌면-ㅁ-;;;;;
좀 어떡해 안될까요? -
jugug
2003.03.06 20:25
그런거라면 submit를했을때 검사하는 스크립을 넣으시면 해결 될겁니다.
대충
function check_submit(){
if (document.ipt.jumin2.value.substring(0,1) == 1){
if(document.ipt.jumin1.value.substring(0,1) < 03){
alert("잘못된 주민번호입니다..");
return false;
}
}
else if...
.
.
.
.
}
해주시고 폼태그엔 onsubmit="return check_submit();" 이것을 추가시켜주면 되겠죠 -
jugug
2003.03.08 10:37
if (document.ipt.jumin2.value.substring(0,1) == 01 || document.ipt.jumin2.value.substring(0,1) == 02) document.ipt.birth_y.value = "19"+document.ipt.jumin1.value.substring(0,2);
..
..
이것을 check_sex()에 넣으시면 될거 같은데요..
제목 | 글쓴이 | 날짜 |
---|---|---|
페이지 프린트 제어 하기 [1] | RedEye | 2003.04.14 |
부라우저 타이틀 제어? [1] | RedEye | 2003.04.14 |
현재 데이터를 읽는 중입니다. 잠시만 기다려주세요~!! | RedEye | 2003.04.12 |
두드려라! 그러면 돌아갈 것이다~ [3] | RedEye | 2003.04.12 |
001 ~ 999 순차적인 리스트 만들기 [8] | 아이쿠 | 2003.04.10 |
현재 접속 시간을 택스트로 뿌려주는 소스... [8] | 이태운 | 2003.04.04 |
Pop-up Window 생성기 [1] | xcool | 2003.04.03 |
프레임에서 버튼으로 타겟 지정하기!! [1] | RedEye | 2003.04.01 |
엔지오식 좌측이동메뉴 레이어 가운데기준정렬 [11] | 스티치 | 2003.03.29 |
[초보 강좌] 쉬운 사칙연산을 하여보자 첫번째 [3] | ZipShin | 2003.03.27 |
책갈피로 띄운 새창내용 바로가서 보기 | RedEye | 2003.03.27 |
무료로 컵받침을 만들어주는 스크립트... -_-;; [18] | 행복한고니 | 2003.03.25 |
입력된 내용대로 출력하는 JS 소스코드 생성기 [1] | xcool | 2003.03.25 |
주민등록번호로 자동으로 생일, 성별체크 [3] | [포터]아렌티 | 2003.03.19 |
그림을 생성시키는 듯한 효과의 스크립트 [5] | 미친개 | 2003.03.17 |
비밀번호 실시간 확인 스크립트 - 제로보드 응용버전 [2] | 세죠위그이 | 2003.03.14 |
자바 스크립트 소스 올릴때 예제 쉽게 보이기 [2] | xcool | 2003.03.12 |
비밀번호 실시간(?) 확인 스크립트;;; [11] | Zective | 2003.03.09 |
[re] 비밀번호 실시간(?) 확인 스크립트;;; 개인적으로 수정 [2] | 아이쿠 | 2003.03.15 |
주민등록번호를 받아 자동으로 폼에 생일, 성별 체크해주기 [4] | jugug | 2003.03.06 |
추가 되었으면 하는건;;
뒷자리수 첫번째가 3,4면 생년월일이 2000년도 아닌가요 -_-?
그런데 뒤에 3,4하면 그래도 생년월일에서 19**도로 치니;;
좀 어케 해주세요 ㅠ_ㅠ