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