0

次のコードを使用して、現在の年のカレンダーのみを作成して表示しています...今、今年から次の18年までの年のみを表示したい..それを行うことができません。それを行うためのロジックを教えてください

<!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>
4

1 に答える 1

0

dijit.Calender.isDisabledDate はブール値を返す必要があります。

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

あなたの現在のコードは少し複雑だと思います...もっと簡単に。

-今年

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

-今年から次の18年

isDisabledDate : function(d) {
  return d.getYear() > (parseInt(new Date().getYear(), '10') + 18) || d.getYear() < new Date().getYear(); // current year to next 18 years
}
于 2012-07-07T16:19:08.340 に答える