Недавно мы обновили jQuery с 1.4.2 до 1.6.1 и jQueryUI с 1.8.4 до 1.8.12.
В нашем тестировании у нас не было серьезных проблем, кроме одного:
У нас есть пользовательский элемент управления, который использует средство выбора даты и обновляет выпадающий список форматов при выборе новой даты.Теперь, когда вы выбираете дату, вы получаете следующую ошибку:
'length' is null or not an object
WebResource.axd
До этого обновления это работало нормально во всех современных браузерах.После обновления он перестал работать в IE (64-битная машина под управлением Windows 7, IE 8, режим совместимости не имеет значения) для наших тестировщиков.Кажется, он все еще работает в XP.
связанный вопрос был задан еще в '09, и он получил очень хороший ответ .
Я попытался реализовать это, и это нарушает часть функциональности «Обновить выпадающий список».
Элемент управления инициализируется путем вызова этой функции, передавая элемент управления как $ scope:
function InitializeCalendarDateControl($scope) {
CalendarDateControl_FirstTimeThrough = true;
$("input.date", $scope).datepicker({ changeMonth: true, changeYear: true, yearRange: '1850:c+5'});
var groupedControls = $("div.CalendarDateControlCssClass[groupname!=]", $scope);
--snip some control hiding stuff
--snip some time format validation stuff
if (!$scope.hasClass("CalendarDateControlCssClass")) {
$("input.hasDatepicker, input.hh, input.mm, select.dates, select.ampm", $scope).live("change", function () {
CalendarDateControl_FirstTimeThrough = false;
updateControls($(this));
});
if (groupedControls.length > 0) {
$("div.CalendarDateControlCssClass", $scope).each(function () {
updateControls($(this).children("input:eq(0)"));
});
}
} else {
$("input.hasDatepicker, input.hh, input.mm, select.dates, select.ampm", $scope).live("change", function () {
CalendarDateControl_FirstTimeThrough = false;
updateControls($(this));
});
if (groupedControls.length > 0) {
updateControls($scope.children("input:eq(0)"));
}
}
}
Функция updateControls - это функция, которая обновляет выпадающий список.
При использовании исправления, указанного в ответе выше, события изменения не срабатывают.
Что я могу сделатьэто исправить?