如何禁用默认DHTML日历中的前几天?
我使用了以下代码,
<script type="text/javascript">
Calendar.setup({
inputField : '_dob',
ifFormat : '%m/%e/%y',
button : '_dob_trig',
align : 'Bl',
singleClick : true,
disableFunc: function(date) {
var now= new Date();
return (date.getTime() < now.getTime());
}
});
</script>
它可以禁用之前的日期。但是当我们选择有效日期时,没有任何反应。日期未添加到日历的文本字段中。
如果我更改月份并返回,我可以选择日期!
任何想法?
答案 0 :(得分:3)
哇!
可能是一些javascript错误。除非从下个月开始回来,否则我无法选择任何日期......
我通过给出一些if循环来过去它。我的更新代码如下。
<script type="text/javascript">
Calendar.setup({
inputField : '_dob',
ifFormat : '%m/%e/%y',
button : '_dob_trig',
align : 'Bl',
singleClick : true,
disableFunc: function(date) {
var now= new Date();
if(date.getFullYear()<now.getFullYear())
{
return true;
}
if(date.getFullYear()==now.getFullYear())
{
if(date.getMonth()<now.getMonth())
{
return true;
}
}
if(date.getMonth()==now.getMonth())
{
if(date.getDate()<now.getDate())
{
return true;
}
}
},
});
</script>
向所有人致以问候......
答案 1 :(得分:1)
我有同样的问题,在调试之后,问题似乎是日历无法弄清楚当前的日历日期应该是什么(因为它被disableFunc回调函数禁用)。您有两种选择。
您可以在if(!cell.disabled)行之后的calendar.js中添加以下行。 (恰好是我的文件版本中的第1183行 - v 1.51)
否则 { this.currentDateEl = cell; }
第二个选项也允许您禁用当前日期。
对于那些想知道这个DHTML日历是什么的人,这里有一个链接到它的文档:http://www.dni.ru/js/doc/html/reference.html
答案 2 :(得分:0)
禁用功能应始终返回TRUE或FALSE。
disableFunc函数:接收JS Date对象的函数。如果必须禁用该日期,则应返回true,否则返回false。弃用(见下文)。
请参阅以下内容,
DHTML CALENDAR SETTINGS REFERENCE
但是在你的代码中,disable函数没有返回任何内容...... :(因此它会进入js错误,并且在事件点击时无效。
检查你的病情,
return (date.getDate() <= now.getDate());
检查上述情况后,根据您的要求返回true或false ......
答案 3 :(得分:0)
尝试以下代码
Calendar.setup({
inputField : '_dob',
ifFormat : '%m/%e/%y',
button : '_dob_trig',
align : 'Bl',
singleClick : true,
dateStatusFunc : function (date) {
var now= new Date();
return (date.getDate() <= now.getDate());
}
});