2012-07-06 3 views
0

다음 코드를 사용하여 현재 연도 달력을 만들고 표시하고 있습니다 ... 이제 현재 연도에서 다음 18 년까지만 표시하고 싶습니다. 나는 할 수 없습니다. 내게 할 일이 어떤 논리인가dojo 캘린더에서 선택된 연도 표시

<!DOCTYPE html> 
<html > 
<head> 

    <link rel="stylesheet" href="dojo/dojoroot/dijit/themes/claro/claro.css"> 
    <style type="text/css">.undefined table.dijitCalendarContainer { 
    margin: 25px auto; 
    width: 200px; 
}</style> 
<script src='dojo/dojoroot/dojo/dojo.js' data-dojo-config='parseOnLoad: true'></script><script>require([ 
    "dojo/ready", 
    "dijit/dijit", // loads the optimized dijit layer 
    "dijit/Calendar", 
    "dojo/date" 
], function(ready, dijit, Calendar, date){ 
    ready(function(){ 
     new Calendar({ 
     value: new Date(), 
     isDisabledDate: function(d){ 

     // var d = new Date(d); d.setYear(2012); 
      var d = new Date(d); d.setHours(0, 0, 0, 0); 
      var today = new Date(); today.setYear(2012); 
      return Math.abs(date.difference(d, today, "year")); 
     } 
     }, "mycal"); 
    }); 
});</script> 
</head> 
<body class="claro"> 
    <div id="mycal"></div> 
</body> 
</html> 

답변

0

dijit.Calender.isDisabledDate는 부울을 반환해야합니다.

http://dojotoolkit.org/api/1.7/dijit/Calendar

현재 코드는 단순히 ... 더 생각 좀 복잡합니다.

-current 년

isDisabledDate : function(d) { 
    return d.getYear() != new Date().getYear(); //current year 
} 

-current 년 18 다음 년

isDisabledDate : function(d) { 
    return d.getYear() > (parseInt(new Date().getYear(), '10') + 18) || d.getYear() < new Date().getYear(); // current year to next 18 years 
} 
관련 문제