在道场日历中显示选定的年份

时间:2012-07-06 08:23:07

标签: javascript jsp dojo

我正在使用以下代码创建并仅显示当前年份的日历...现在我想显示当前年份到未来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>

1 个答案:

答案 0 :(得分: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
}