【发布时间】:2016-07-25 01:29:27
【问题描述】:
我有一个日历需要禁用特定日期。
我使用 spiceforms.com/blog/how-to-disable-dates-in-jquery-datepicker-a-short-guide/ 上的代码作为示例来编写我的代码,它运行良好,但在某些时候它停止了工作,我找不到原因, 我的代码是:
function Disableentries(date) {
// here I get an array of dates in yyyy-mm-dd format
var datesarray = datesfromcalendar();
var arraynoentry = datesarray[0];
var m = date.getMonth();
var d = date.getDate();
var y = date.getFullYear();
var currentdate = y + '-' + (m + 1) + '-' + d ;
// We will now check if the date belongs to disabled dates array
for (var i = 0; i < arraynoentry.length; i++) {
// Now check if the current date is in disabled dates array.
if (jQuery.inArray(currentdate, arraynoentry) != -1 ) {
return [0];
}else{
return [1];
}
}
}
jQuery(function() {
jQuery( "#edit-available-from-datepicker-popup-0-bloque" ).datepicker({
minDate: 0,
beforeShowDay: Disableentries,
dateFormat: 'dd-mm-yy',
});
});
由于这段代码,我禁用了一些日期,但它们不是数组中的日期。从 2016 年 10 月 29 日到 2016 年 12 月 31 日,我禁用了整个日历,然后当我的禁用日期如下图所示: calendar 1 calendar 2
¿代码或其他解决此问题的方法有什么问题吗?
编辑:函数 datesfromcalendar() 获取需要的日期 从图片中出现的日历中禁用。这是 代码:
function datesfromcalendar(){
var arraynoentry= ['2000-01-15'];
var arraynoexit= ['2000-01-16'];
jQuery('.cal-month').each(function(){
var month = jQuery(this).data("cal-month");
var year = jQuery(this).data("cal-year");
//alert(month);
var noentry = jQuery(this).find('.cal-na-pm');
var noexit = jQuery(this).find('.cal-na-am');
jQuery.each(noentry,function(){
var day = jQuery(this).text();
arraynoentry.push(year + "-" + month + "-" + dia);
//block entries
//alert('hello');
})
jQuery.each(nosalida,function(){
var day = jQuery(this).text();
arraynoexit.push(year + "-" + month + "-" + dia);
//block exits
//alert('bye');
})
})
var results = [arraynoentry,arraynoexit];
return results;
}
【问题讨论】:
-
也向我们展示你的功能
datesfromcalendar() -
函数 datesfromcalendar 工作正常并返回我从图片中的日历中获得的禁用日期(我先检查了它),但无论如何我都会把它放在这里。
标签: javascript jquery datepicker calendar