2012-03-19 3 views
2

사용자의 미리 알림을 강조 표시 할 수있는 캘린더를 구현하기 위해 jsp의 1.7에서 Datepicker를 사용하여 Struts 웹 응용 프로그램을 프로그래밍하고 있습니다.JQuery : Datepicker 날짜 강조 표시 범위

나는 날짜 선택기에서 날짜의 범위를 강조하고 싶습니다 :

나는 질문이 있습니다. . 내 코드로, 자바 스크립트 콘솔에 오류가 표시되지 않습니다하지만 난에 로그인 할 때 날짜의 범위가 강조되지 않습니다 내 기능입니다 : 내가 미리 알림의 배열을 가지고

$(function(){ 

      $('#datepicker').datepicker({ 
       flat: true, 
       numberOfMonths: [1,1], 
       dateFormat: 'dd/mm/yy', 
       beforeShowDay: highlightDays 
      }); 

, 각 알림 3 개 속성의 startDate를 갖고, endDate가 단위 (연결 장치)를 beforeShowDay 이벤트에

, 함수 highlightDays이 활성화됩니다 :

function highlightDays(date) { 

    //For all reminders in the db 
    for (var i = 0; i < reminders.length; i++) { 

    //If the current date in between the start and end date of reminder 
     if((new Date(reminders[i].start).getTime()) 
         <= date.getTime()        
         && (date.getTime())       
         <= (new Date(reminders[i].end).getTime())) date 
       { 
        //Then highlight the current date    
        return [true, 'ui-state-highlight',reminders[i].unit]; 

       }else{ //Otherwise do not highlight       
        return [true, '']; 
       } 
      }   
     } 

내가 잘못된 일을 할 수 있는지 어떤 생각을 가지고 있습니까? 지금까지 구현 한 것은 나에게 의미가 있습니다. 그래서 무엇이 잘못 될 수 있는지 잘 모르겠습니다. 나는 약간의 지침을 정말로 바르게 평가할 것이다!

읽어 주셔서 감사합니다.

+1

범위를 선택하거나 값을 사용하는 데 문제가 있습니까? –

+0

의견을 주셔서 감사합니다. 음, 내 문제는 범위 (시작 및 종료 날짜가 미리 알림 있음) 및 달력에서 일 inbetween 강조 표시하는 것입니다, 그것은 현재 날짜 강조 표시하고 내가 요청한 날짜 범위 않습니다. highlightDays 함수에서 강조 표시하려면 – AndresR

+1

hiya, 다음과 같은 것을 찾고 있습니까? http://jsbin.com/evudo, 건배 –

답변

0

날짜를 나타내는 datepicker 및 날짜를 ​​나타내는 datepicker를 사용하여 성공적으로 수행 했으므로 datepicker를 하나 수정했습니다. 여기에 코드입니다 :

$(function() { 
      var today = new Date(); 
      var thisYear = (today).getFullYear(); 
      var fromDate = '1/1/2000' //this is the initial from date to set the datepicker range 
      var toDate = '1/7/2000' // this is the initial to date to set the datepicker range 

//... initialize datepicker.... 
    }, 
    beforeShowDay: function(date){ 
     //if the date is in range 
     if (date >= fromDate && date <= toDate) { 
      return [true, 'ui-individual-date', '']; //applies a css class to the range 
     } 
     else { 
      return [true, '', '']; 
      } 
    }, 
    onSelect: function (dateText, obj) { 

//sets the new range to be loaded on refresh call, assumes last click is the toDate    
    fromDate = toDate; 
    toDate = new Date(dateText); 

    $(".classDp1").datepicker("refresh"); 
    $(".classDp2").datepicker("refresh"); 
    }, 

당신이 beforeShowDay 기능을 새로 고칠 때마다이 새로운 FROMDATE 및 TODATE 범위라고합니다. 함수 외부에 변수가 있고 그 변수를 수정하면 각 클릭에 CSS의 강조 표시를 적용 할 수 있습니다.

관련 문제