データベースから取得した特定の日付を無効にするコードを作成しました。
getDates スクリプト内では、データベースから日付を取得し、それらを返し、配列availabledatesに割り当てます。
<script>
var unavailableDates;
function unavailable(date) {
dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
if ($.inArray(dmy, unavailableDates) == -1) {
return [true, ""];
} else {
return [false, "", "Unavailable"];
}
}
$(document).ready(function()
{
$("#datepicker").datepicker({
dateFormat: 'yy-mm-dd',
beforeShowDay: unavailable,
minDate: 0,
firstDay: 1, // rows starts on Monday
changeMonth: true,
changeYear: true,
showOtherMonths: true,
selectOtherMonths: true,
altField: '#date_due',
altFormat: 'yy-mm-dd'
});
$('#datepicker').focus(function(){
//alert($('#name').html());
$.ajax({
url: 'getDates.php',
data: "artist_id="+$('#name').html(),
dataType: 'json',
success: function(data)
{
unavailableDates = data;
}
});
})
});
</script>
正常に動作しますが、datepicker を 2 回クリックした場合のみです。最初にクリックすると、すべての日付が表示されます (利用可能かどうかに関係なく)。もう一度クリックすると、利用できない日付が表示されます。
誰かが理由を知っていますか?ありがとう