初始化Date Picker后,我尝试禁用某些日期。
我正在像这样初始化选择器:
$( document ).ready(function() {
$('#inputDatetime').pickadate({
format: 'dd. mmmm yyyy',
formatSubmit: 'yyyy-mm-dd',
min: dt,
selectYears: 2,
selectMonths: true
});
});
用户现在执行一些触发onChange()
事件的操作。该disableDates()
函数准备了更多要禁用的日期,并使用以下set
方法将其设置为选择器:
function disableDates() {
var disabledDays = [];
$.ajax({
url: 'partners/getInactiveDays',
dataType: 'json',
async: false,
success: function(data) {
$.each(data.days, function(i, d) {
disabledDays.push(parseInt(d.Day.id));
});
}
});
var $input = $('#inputDatetime').pickadate();
var picker = $input.pickadate('picker');
picker.set({
disable: disabledDays
});
}
请注意,在我的情况下,disableDays 包含整数(指工作日)和根据文档(http://amsul.ca/pickadate.js/date/#disable-dates)的日期。
第一次触发该disableDates()
功能时,它会正确禁用我使用 AJAX 检索的日期。一旦第二次触发,选择器似乎不再更新。我猜必须以某种方式再次渲染选择器以反映更改。我尝试过了 。stop()
和.start()
,.render()
没有任何影响。
如何禁用日期并正确刷新选择器?