자바스크립트 onkeyup시 자동 계산

자바스크립트 onkeyup시 자동 계산

QA

자바스크립트 onkeyup시 자동 계산

본문


<?php  $toYear = date("ymd");  ?> 
< script language = "javascript">  
function birthShow() {    
 var inputBirth = document.getElementById("mb_birth_year").value;    
 var toYear = <?php echo $toYear; ?>;    var circulate = mb_birth_year.innerHTML = (inputBirth-toYear);   
 
  if(circulate < 14) {      
  alert("회원 가입을 위해서는 만 14세 이상이어야 합니다.");              mb_birth_year.focus();   
  } 
 } 
 
< /script> 
< meta http-equiv="content-type" content="text/html;charset=utf-8" /> 
 
< tr> 
< th scope="row"><label for="mb_birth_year"><font color="red">*</font> Birth<strong class="sound_only"></strong></label></th> 
< td>
 <input type="text" name="mb_birth_year" id ="mb_birth_year" class="frm_input required nospace" onkeyup="birthShow();">
 < /td>
 < /tr>  

 

안녕하세요,

지금 간단한 자바스크립트를 짰는데 잘못된거같아 도움 좀 부탁드리겠습니다.

 

현재 제가 지금 할려는게, 회원가입을 할때 나이를 받는데, 나이를 입력할때 만 14세가 안되면 alert문이 띄워지면서 안되게 하는건데요..

위에 있는 소스대로 짜봤는데, 생각처럼 잘 되지가 않더군요..

 

일단 input박스에서는 mb_birth_year 로 네임과 아이디를 지정해줬고요, $toYear 라는 변수로 올해 년도를 지정했습니다.

 

그래서 유저가 input박스에 입력했을때 만약 만 14세가 되지 않았을 경우에는 alert이 띄우도록 했습니다.  해당 소스에서 부족한 부분좀 알려주시면 정말 감사하겠습니다.

 

그리고 input박스에서 onkeyup을 썼는데, 이걸 쓰니까 숫자를 다 넣기전에 저 함수가 실행되던데,

onkeypress, onkeydown, onkeyup 중에 어떤걸 써야 하나요? 만약 이게 아니라면 어떤걸 써서 만들어야 될지 스크립트 고수분들께 부탁 좀 드리겠습니다

이 질문에 댓글 쓰기 :

답변 2


function birthShow() {
   var inputBirth = document.getElementById("mb_birth_year").value;
   var Year = new Date();
   var toYear = Year.getFullYear();
   if((toYear- inputBirth) < 14) {
      alert("회원 가입을 위해서는 만 14세 이상이어야 합니다.");
      mb_birth_year.focus();
   }
}

onblur로 바꿔서 해 보세요. 


<?php  $toYear = date("Ymd");  ?> 
<script>  
function birthShow() {    
 var inputBirth = document.getElementById("mb_birth_year").value;    
 var toYear = <?php echo $toYear; ?>;    
 var circulate = mb_birth_year.innerHTML = (toYear-inputBirth);   
 
  if(circulate < 140000) {      
  alert("회원 가입을 위해서는 만 14세 이상이어야 합니다.");              
  mb_birth_year.focus();   
  } 
 } 
 
</script> 
<meta http-equiv="content-type" content="text/html;charset=utf-8" /> 
 
<tr> 
<th scope="row"><label for="mb_birth_year"><font color="red">*</font> Birth<strong class="sound_only"></strong></label></th> 
<td>
 <input type="text" name="mb_birth_year" id ="mb_birth_year" class="frm_input required nospace" onblur="birthShow();">
 </td>
 </tr>  

 

대소문자 구분하시고 뛰워쓰고 빈칸도 확인해야댑니다.

계산식이랑 전체적으로 확인해보세여

몇가지 수정했습니다

 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,674 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT