jquery datepicker 달력두개 연동시 minDate 설정보완 (구체적 질문 내용에 넣었어요)
- 1
-
0
가는편과 오는편 달력 두개를 연동하는 코드인데요, ( 그냥 달력 두개 연동 )
가는편에서 월 이동시 오는편달력도 가는편 월과 동일한 월로 같이 이동하도록 설정한
코드입니다
질문1 : 오는편 달력에서 현재 오는편달력의 년/월 이전으로
이동불가하게 하려면 어떻게 해야할까요
- onChangeMonthYear:function(year,month,evnt)//왼쪽이나 오른쪽버튼을 눌렀을때 호출되는 콜백함수
- {
- //2. 좌측 달력의 ‘월“ 과 우측 달력의 ’월‘ 은 동일하게 움직이도록 처리
- var day2 = $("#godate").datepicker('getDate');
- day2.setMonth(month-1);
- day2.setFullYear(year);
- $('#backdate').datepicker('setDate', day2)
- ...
- <div id="godate" style="display:inline-block"></div> // 가는편달력
- <div id="backdate" style="display:inline-block"></div> // 오는편달력
- minDate 옵션값으로 현재 이동된 가는편 년/월 값을 변수에 저장해서 적용하면 간단히 될텐데
- 그걸 코드로 구현하는게 이리저리 해봐도 안되네요
- ===============================
- 두번째로 가는편에서 날짜를 선택하면 오는편 minDate 값으로 가는편에서 선택한 날짜를 지정해서
- 가는편에서 선택한 날짜 이전으로 이동불가되도록 코드가 짜여졌는데
- 다시 가는편 월을 미래 월로 이동하면 오는편도 같이 잘 움직이는데, 문제는 가는편 월을 이전 월로
- 이동하면 그때는 최초 가는편에서 선택했던 값이 오는편 minDate 값으로 지정되어서
- 오는편 월이 가는편 월과 같이 이동하지 않아요
- 질문2 :가는편에서 날짜 선택 후 다시 이동할 때 선택시 오는편 minDate 값을 입력된 값을
- 초기화시키려면 어떻게 해야 할까요
- ============= 아래 코드는 전체 코드 입니다 ==============
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="wideadLineh=device-wideadLineh, initial-scale=1">
- <link rel="stylesheet" href="jquery-ui.min.css">
- <script src="jquery-3.1.1.min.js"></script>
- <script src="jquery-ui.min.js"></script>
- <script>
- /* ★ 설정숙제
- 1. 가는편 선택 후 다시 월 이동시 오는편 minDate 선택값 도 초기화되어
- 원래대로 가는편 월과 동일한 월로 같이 이동
- 2. 가는편 월 이동시 오는편 월은 현재 이동된 가는편 월 이전으로 이동불가
- */
- var deadLine = new Date(),
- y = deadLine.getFullYear(),
- m = deadLine.getMonth()+1,
- d = deadLine.getDate(),
- h = deadLine.getHours(),
- M = deadLine.getMinutes();
- if(h >= 16 && M >= 30 ) d++;
- deadLine = y + "-" + m + "-" + d;
- $(function()
- {
- // 분 단위로 minDate 제어 - 16:30 지나면 minDate 일 단위에 하루 플러스 하여 선택불가 만들기
- $( "#godate" ).datepicker({ // http://blog.naver.com/wizardkyn/220661505153
- minDate: deadLine //1. 좌측 달력 날짜의 최초 값은 기본 기능에 나와 있듯 “오늘” 날짜이며, 오늘 날짜 이전으로 월 & 일 이동 불가
- //minDate 옵션 설정
- ,dayNamesMin: [ "일", "월", "화", "수", "목", "금", "토"] //달력 한글화(요일)
- ,monthNames: [ "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월" ]//달력 한글화(월)
- ,yearSuffix:"년"
- ,showMonthAfterYear:true
- ,nextText:"다음달"
- ,prevText:"이전달"
- ,dateFormat:"yy-mm-dd"
- ,onSelect: function(selected,evnt)
- {
- //3. 좌측 달력에서 날짜를 선택하면 우측 달력은 좌측 달력에서 선택된 날짜 이전으로 월 & 일 이동 불가
- var day = $("#godate").datepicker('getDate');
- $('#backdate').datepicker('option','minDate', day);//오른쪽달력 minDate 옵션으로 왼쪽달력의 선택된 날짜를 지정
- }
- ,onChangeMonthYear:function(year,month,evnt)//왼쪽이나 오른쪽버튼을 눌렀을때 호출되는 콜백함수
- {
- //2. 좌측 달력의 ‘월“ 과 우측 달력의 ’월‘ 은 동일하게 움직이도록 처리
- var day2 = $("#godate").datepicker('getDate');
- day2.setMonth(month-1);
- day2.setFullYear(year);
- $('#backdate').datepicker('setDate', day2)
- }
- });
- $( "#backdate" ).datepicker({
- minDate: deadLine
- ,dayNamesMin: [ "일", "월", "화", "수", "목", "금", "토"]//달력 한글화(요일)
- ,monthNames: [ "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월" ]//달력 한글화(월)
- ,yearSuffix:"년"
- ,showMonthAfterYear:true
- ,nextText:"다음달"
- ,prevText:"이전달"
- ,dateFormat:"yy-mm-dd"
- });
- });
- </script>
- </head>
- <body>
- <div id="godate" style="display:inline-block"></div>
- <div id="backdate" style="display:inline-block"></div>
- </body>
- </html>
0
댓글
작성한 댓글 등록하기
답변 작성
질문에 적합한 답변을 상세히 작성해 주시기 바랍니다.
답변이 찬성되면 태그평판 +2점이 적립, 반대되면 태그평판 -1점 차감됩니다.
답변이 채택되면 태그평판 +10점이 적립됩니다.