特定のあらかじめ決められた日の選択を許可しないようにjQuery UI Datepickerを設定する(簡単な)方法はありますか?
このアプローチ を動作させることはできましたが、nullエラーが発生してIEに表示されません。
'natDays [...]。0'はnullまたはオブジェクトではありません
前もって感謝します!
UPDATE:いくつかのコードを含めた場合、役に立ちますか?とにかく、これのほとんどは前述のスレッドから直接取得されました:
natDays = [
[7, 23], [7, 24], [8, 13], [8, 14],
];
function nationalDays(date) {
for (i = 0; i < natDays.length; i++) {
if (date.getMonth() == natDays[i][0] - 1
&& date.getDate() == natDays[i][1]) {
return [false, natDays[i][2] + '_day'];
}
}
return [true, ''];
}
function noWeekendsOrHolidays(date) {
var noWeekend = $.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}
$(function() {
$("#datepicker").datepicker({
inline: true,
minDate: new Date(2009, 6, 6),
maxDate: new Date(2009, 7, 14),
numberOfMonths: 2,
hideIfNoPrevNext: true,
beforeShowDay: $.datepicker.noWeekends,
altField: '#alternate',
});
});
再度、感謝します!
「var」キーワードを前に付けてnatDaysを適切に宣言してみましたか?
また、natDays定義の最後に追加のカンマがあります。
natDays [i] [2]は、配列に2つの項目しかないため機能しません-ただ試してください ''
さらに、beforeShowDay関数名を正しく設定する必要があります-カスタム関数を呼び出しているようにも見えません
特定の日付が選択されないようにする方法は次のとおりです。
var unavailableDates = ["9-5-2011","14-5-2011","15-5-2011"];
function unavailable(date) {
dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
if ($.inArray(dmy, unavailableDates) < 0) {
return [true,"","Book Now"];
} else {
return [false,"","Booked Out"];
}
}
$('#iDate').datepicker({ beforeShowDay: unavailable });
beforeShowDay
オプションを使用できます。月の28日を過ぎた日は無効にする必要がありました。これが私のコードです。
$('.datepicker').datepicker({
dateFormat: "yy-mm-dd",
beforeShowDay: function(date) {
var day = date.getDate();
if (day > 28) {
return [false];
} else {
return [true];
}
}
});
詳細は次のとおりです。 http://api.jqueryui.com/datepicker/#option-beforeShowDay
BeforeShowDayコールバックに渡される日付変数はJavaScriptの日付オブジェクトなので、さまざまなライブラリを使用してフォーマットしたり、date.getTime()などを使用してタイムスタンプを取得したりできます。
IEの問題は、おそらく次の行にあります:
altField: '#alternate',
});
コンマ記号を削除してみてください、それは動作するはずです。
beforeShowDay: $.datepicker.noWeekends,
になります
beforeShowDay: noWeekendsOrHolidays,
var unavailableDates = ["19-8-2014","14-9-2014"];
function unavailable(date) {
dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" +date.getFullYear();
if ($.inArray(dmy, unavailableDates) < 0) {
return [true,"","Book Now"];
} else {
return [false,"","Booked Out"];
}
}
$('#iDate').datepicker({ beforeShowDay: unavailable });