我将一个datepicker分配给多个字段,并在myShowDay属性中禁用了特定日期数组。
.datepicker({ beforeShowDay: disablePaymentDates, minDate: 0, maxDate: afterSixMonths });
我正在尝试停用用户在所有日期选择器中选择的日期。反正有吗?
答案 0 :(得分:1)
beforeShowDay
类型:功能(日期日期)
默认值:null
一个以日期作为参数的函数,必须返回一个数组:
[0] :true / false表示此日期是否可选 [1] :要添加到日期的单元格的CSS类名称或""对于默认演示文稿 [2] :此日期的可选弹出工具提示
在显示日期选择器之前,每天都会调用该函数。
.datepicker({
minDate: 0,
maxDate: afterSixMonths,
beforeShowDay: function(date) {
var dd = date.getDate();
if ($.inArray( dd, disablePaymentDates)!= -1) {
return [false, "", "disabled" ];
} else {
return [true, "", "enabled" ];
}
}
});
答案 1 :(得分:0)
我找到了类似于Roetnig的解决方案。我将以下代码添加到beforeShowDay属性调用的函数中。
var monthsToDisable= [];
if ($.inArray(date.getMonth(date), monthsToDisable) > -1) {
$return = false;
$returnclass = "unavailable";
}
然后我填写了'monthToDisable'适当的月份(0-11)。由于此数组将根据用户操作进行更新,因此我只需在更新数组后重新应用datepicker。
答案 2 :(得分:0)
或者您可以使用moment.js
禁用日期范围var disableRangeStartDate = '2017-10-29';
var disableRangeEndDate = '2018-04-18';
.datepicker({
isInvalidDate: function(arg){
var thisMonth = arg._d.getMonth()+1;
if (thisMonth<10){thisMonth = "0"+thisMonth;}
var thisDate = arg._d.getDate();
if (thisDate<10){thisDate = "0"+thisDate;}
var thisYear = arg._d.getYear()+1900;
var thisCompare = thisYear +"-"+ thisMonth +"-"+ thisDate;
return moment(thisCompare).isBetween(disableRangeStartDate, disableRangeEndDate);
}
});