728x90
반응형

입력폼에서 달력을 이용하여 날짜를 입력받는다.

(달력은 웹상 어디에서나 구할 수 있다.)

 

 

입력받는 형식은

 

2008-07-21

yyyy-mm-dd

 

이렇게 받는다.

 

 

이렇게 받은 날짜와 현재 날짜를 비교하여 만약 이전 날짜라면 경고창을 띄우는 것을 만들고 싶다.

(희망일은 미래이지 과거가 아니므로-_ -;)

 

 

그래서, 진짜 죽도록 찾았다ㅠ

인턴쉽 회사 선배에게 여쭈어 보았고, 그래서.. 한시간 반 가량,,같이 헤맸다+_+ㅋㅋㅋㅋㅋ

 

 

그래서 나온 결론!!!ㅋ

 

 

먼저, asp파일에 자바스크립트를 등록해 준다.

 

<script type="text/javascript">
<!--
//입력 날짜 체크
function checkRqDate(){

 var now = new Date();
 year = now.getYear();          // 현재 년도 가져오기
 month = now.getMonth()+1;        // 현재 월 가져오기 (+1)
 if((month+"").length < 2){         //월이 '7'로 찍히지 않고 '07'로 찍히도록 길이를 받아온다
      month = "0" +month;         //길이가 1이라면 앞에 0을 붙여서 '07'형태로 나오게 한다
 }
date = now.getDate();       // 현재 날짜 가져오기
 if((date+"").length < 2){         //일이 '7'로 찍히지 않고 '07'로 찍히도록 길이를 받아온다
  date = "0" +date;           //길이가 1이라면 앞에 0을 붙여서 '07'형태로 나오게 한다
 }
 today = year +""+ month +""+ date ;           //오늘 날짜 ex) 20080801

 

 var InputDate = document.frmWork.txtHpDate.value;    //입력된 날짜 받아오기
 var dateSplit = InputDate.split("-");         //입력값을 '-'을 기준으로 나누어 배열에 저장해 주는 함수 split

 

 year = dateSplit[0];      //첫번째 배열은 년
 month = dateSplit[1];  //월
 day = dateSplit[2];   //일

 InputDate = year +""+ month +""+ day;       //입력된 값을 더해준다.

 

 if (parseInt(InputDate) < parseInt(today) ){          //int형으로 변환하여 비교한다
      alert("오늘 날짜보다 이전 날짜입니다.");
      document.frmWork.txtHpDate.value = "";         //이전 날짜라면 입력폼 리셋처리
 }

}

 //-->
</script>

 

이렇게 위에 일단 자바스크립트를 등록해 준다.

여기서 해당 사항은 주석처리 해 두었으니 참고하시길,

 

 

그리고,

입력되는 곳에는 이렇게 넣어주면 끄읏~

 

 

<INPUT name="txtHpDate" class="input" onClick="popUpCalendar(this, txtHpDate, 'yyyy-mm-dd')" onchange="javascript:checkRqDate(this);" style="WIDTH: 78px;" readonly>

 

 

name : 입력받는 폼 이름

onClick : 자바스크립트 호출, 여기서는 달력 자바스크립트 이름이 'popUpCalendar'이고 현재파일, 입력폼이름, 형식을 지정해 호출해준다

onchange : 입력값과 현재 날짜를 비교해 주는 함수를 호출해준다. 여기서 this는 자신을 뜻한다.(=자신의 값을 리턴)

readonly : 오직 읽기만 하도록 하여 혹시나 입력폼에 값을 입력하는 불상사가 생기지 않도록 방지

 

 

 

 

자자, 이정도 설명했으면, 나중에 봐도 알겠지?ㅋㅋ

 

아무리 찾아도, 지식인이나 카페에 올려도 답이 없던데ㅠ

나 말고 다른사람은 덜 고생하시길!ㅠ

 

담아갈땐 리플 필수,

아, 이거 링크스크랩이라는거~

 

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,