웹마스터 팁
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()에 넣으시면 될거 같은데요..
제목 | 글쓴이 | 날짜 |
---|---|---|
APM에서 XE 설치시 깨짐현상 발생될때...
![]() | 비밀M | 2013.05.14 |
파일박스 사용에 관하여 [2] | wooildang | 2013.04.26 |
이미지 리사이즈 적용이 안되는 경우 [4] | 아고라 | 2009.06.30 |
[수정] CSS, JS 파일 gzip로 한꺼번에 압축해서 전송하기
[20]
![]() | SCAC | 2011.09.02 |
모바일에서 댓글 자동 펼치기 (스킨:스케치북5모바일) [2] | 준스타일 | 2013.05.03 |
array 함수와 in_array함수 이용한 시간 체크 | 똑디 | 2013.05.03 |
상담용 게시판 - 확장 변수 이용
[4]
![]() | 어라얼랑 | 2012.06.23 |
XE를 위한 DEBUG 이야기 [3] | 우진홈 | 2013.04.30 |
xe 속도 엄청 빨라집니다. [4] | 투투투쓰리 | 2013.03.12 |
최근게시물에 움직이는 GIF 불러오기 | SuP | 2013.04.25 |
개인서버나 호스팅운영하실분들 참고하세요 [6] | 데브위트™ | 2012.06.19 |
간단한 PHP 문법 [204] | zero | 2000.03.06 |
XE 1.5.X , 1.7.X 용 nginx rewrite [4] | Root | 2013.03.24 |
메뉴에 새글 표시 모듈이 작동하지 않은 문제 해결 [2] | 샹하이 | 2013.04.15 |
meta_add 애드온 수정.(1.7.3 버전에 맞게..)
[4]
![]() | 투씨 | 2013.04.01 |
메인화면에 플래시 쉽게 삽입하는 방법.. [12] | 청개구리00 | 2008.08.30 |
스팸공동대응 api 모듈 지우기 [1] | SCAC | 2012.08.12 |
xe1.7.3.1 으로의 업데이트시 팝업모듈 오류 수정내역 [1] | 날마다좋은날 | 2013.04.12 |
제로보드 xe 게시판 가로 푹 줄이기 방법좀 알려주세요. [1] | 산업일꾼 | 2013.04.14 |
아이콘샵(v0.4) 관리자페이지 디자인수정파일(1.7.x 용)
![]() | 카이네드 | 2013.04.13 |
추가 되었으면 하는건;;
뒷자리수 첫번째가 3,4면 생년월일이 2000년도 아닌가요 -_-?
그런데 뒤에 3,4하면 그래도 생년월일에서 19**도로 치니;;
좀 어케 해주세요 ㅠ_ㅠ