У меня есть очень интересная ошибка с jQueryUI datepicker и UpdatePanel, где выбранная дата datepicker примерно 100 лет назад. jQuery - это версия 1.6.2, а jQueryUI - версия 1.8.14. Вот примерный макет:
Итак, у меня есть UpdatePanel, которая содержит раскрывающийся список, который вызывает обратную передачу при его изменении, а также текстовое поле. У меня есть jQueryUI, устанавливающий текстовое поле как средство выбора даты. Обратите внимание, что все это содержится в модальном диалоговом окне jQueryUI.
Вот что происходит:
Кажется, что средство выбора даты сбивается, когда оно инициализируется, когда оно уже открыто после частичного обратная передача. Я знаю, что настройка datepicker не переживает частичную обратную передачу и что мне нужно повторно инициализировать ее в функции pageLoad
.
Я могу сказать, происходит ли это, проверив, больше ли $ ('. Ui-datepicker-title'). Length
нуля при настройке datepicker в pageLoad
. Но я не знаю, что оттуда делать. Убедившись, что это происходит, я попробовал следующее в pageLoad
перед настройкой datepicker:
$ ('. DateText'). Unbind ();
$ ('. DateText' ) .datepicker ('destroy');
$ ('# ui-datepicker-div'). remove ();
Он либо делает то же самое, либо закрывается и больше не появляется.
Как я могу это исправить?
Обновление : Я пробовал использовать jQueryUI 1.8.18 и jQuery 1.7.1 (последние версии на момент написания), но проблема все еще возникает.
Обновление 2 : мне удалось обойти проблему, указав функцию в параметрах для onChangeMonthYear
, когда средство выбора даты инициализируется в pageLoad
. Если параметр года этого события равен 1899 или 1900, я устанавливаю дату datepicker на один месяц назад или вперед от текущего момента (соответственно).Это устанавливает содержимое текстового поля, которое мне не нужно, поэтому я затем устанавливаю значение текстового поля на ''. В итоге datepicker работает нормально.
Я все же хотел бы лучше разобраться в этой проблеме, поэтому я знаю, является ли это ошибкой в jQueryUI, которую я должен зарегистрировать, или я должен делать что-то другое в другом месте.
Обновление 3 : все еще происходит с ASP.NET 4, jQuery 1.7.2 и jQueryUI 1.8.21. Я протестировал его на пустой странице с настройкой, подобной описанной здесь, и увидел такое же поведение. Я называю это ошибкой jQueryUI. Он хранится здесь .
ОБНОВЛЕНИЕ 4: Я воспроизвел проблему без ASP.NET в этом jsfiddle .