У меня есть встроенный инструмент выбора даты, в котором я хочу выделить некоторые даты на основе массива строк со стороны сервера.
Я обнаружил, что при загрузке страницы с помощью указателя даты события совпадений в текущем месяце подсвечиваться не будут.когда я нажимаю кнопку следующего месяца, события на следующей неделе будут подсвечены.
То, что я обнаружил, что совпадение подсвечивается только при нажатии на следующий месяц, а не при возврате к предыдущему месяцу.
Ниже приведен мой сценарий:
var actionCalDates = new Array();
function getDates(month, year) {
$.ajax({
url: "/Index/GetAllAlerts",
data: {
month: month,
year: year
},
success: function (result) {
var date = new Date();
var i = new Number(date.getMonth());
i += 1;
actionCalDates = result.split(",");
}
});
}
function getTitle(ar, d) {
var result = "";
for (var i = 0; i < ar.length; i++) {
if (ar[i].indexOf(d) != -1) {
var e = actionCalDates[i].split(";");
result += e[0] + "\n";
}
}
return result;
}
$('#calendar').datepicker({
numberOfMonths: [1, 1],
showCurrentAtPos: 0,
dateFormat: 'dd/mm/y',
beforeShowDay: function (thedate) {
var theday = thedate.getDate();
var x = new Number(thedate.getMonth());
x += 1;
var date = thedate.getDate() + "/" + x + "/" + thedate.getFullYear();
getDates(x, thedate.getFullYear());
for (var i = 0; i < actionCalDates.length; i++) {
var entry = actionCalDates[i].split(";");
if (date == entry[1]) {
return [true, "highlight", getTitle(actionCalDates, date)];
}
}
return [true, "", ""];
},
onChangeMonthYear: function (year, month, inst) {
getDates(month, year);
},
onSelect: function (d, instance) {
$.ajax({
url: '/Index/AlertConvertDate',
datatype: 'text',
data: { dateString: d },
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.statusText);
alert(thrownError);
},
success: function (data) {
window.SetHomeContent(data);
}
});
}
});
Пожалуйста, кто-нибудь может указать, где я ошибся?
Спасибо всем.