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 で取得した日付が正しく無効になります。2 回目にトリガーされるとすぐに、ピッカーは更新されないように見えます。変更を反映するには、ピッカーを何らかの方法で再度レンダリングする必要があると思います。私がしようとしました 。stop()
および.start()
、.render()
何の効果もありません。
日付を無効にしてピッカーを正しく更新するにはどうすればよいですか?