Попытка динамического обновления jQuery Datepicker после изменения поля #tour_region. Я взял этот код из веб-блога Салмана и изменил идентификаторы CSS на мои, а также, очевидно, изменил URL-адрес для вызова Ajax.jQuery date picker обновление доступных дат с использованием Ajax
Когда я построил ответ JSON, я протестировал его, используя вызов .ajax, но у Салмана был .getJSON.
Ошибка я получаю: «Uncaught TypeError: Не удается прочитать свойство„запись“неопределенных»
заставляет меня думать, может быть, что-то не так с ответом JSON. Я не слишком хорошо знаком с вызовом .getJSON.
Заранее спасибо.
$(document).ready(function(){
$(function() {
var dateList = null;
var date1 = new Date;
date1.setHours(0, 0, 0, 0);
date1.setDate(1);
var date2 = new Date;
date2.setHours(0, 0, 0, 0);
date2.setMonth(date2.getMonth() + 12, 0);
$("form #date").datepicker({
minDate: date1,
maxDate: date2,
beforeShowDay: function(date) {
var r = [true, ""];
if (dateList === null) {
r[1] = "dp-highlight-unknown";
} else {
var key = $.datepicker.formatDate("yy-mm-dd", date);
if (key in dateList) {
r[1] = "dp-highlight-available";
r[2] = dateList[key].join(", ");
}
}
return r;
}
});
$("#tour_region").on("change", function(){
var region = $(this).val();
$.getJSON("/dates?region=" + region, {
"alt": "json",
"start-min": $.datepicker.formatDate("yy-mm-dd", date1),
"start-max": $.datepicker.formatDate("yy-mm-dd", new Date(date2.getTime() + 86400000)),
"orderby": "starttime",
"max-results": 100
}, function(data) {
dateList = {};
$.each(data.feed.entry, function(i, entry) {
var key = entry.gd$when[0].startTime.substr(0, 10);
if (key in dateList == false) {
dateList[key] = [];
}
dateList[key].push(entry.title.$t);
});
$("form #date").datepicker("refresh");
});
});
});
});
'$ .getJSON' - это просто ярлык для' $ .ajax ({type: 'JSON'}) '. Я бы посоветовал 'console.log (data)' out посмотреть, действительно ли у вас есть иерархия 'data.feed.entry' в ваших данных – briansol
, так как ошибка говорит, что запись переменной не определена. Можете ли вы опубликовать переменную 'data', которую вы получили в ответ здесь? – bipen
Возврат console.log (данные). ["2015-04-12", "2015-04-11", "2015-04-26", "2015-03-27", "2015-04-17", "2015-03-15", «2015-03-24», «2015-04-03», «2015-04-03», «2015-03-15», «2015-03-21», «2015-04-18», «2015 год» -03-19 "," 2015-03-17 "," 2015-04-17 "," 2015-04-20 "," 2015-04-21 "," 2015-04-15 "," 2015-03 -17 "," 2015-04-06 "," 2015-03-24 "," 2015-04-10 "," 2015-03-30 "," 2015-03-24 "," 2015-03-10 «2015-04-20», «2015-04-17», «2015-04-23», «2015-03-27»] – nonegiven72