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 回答