У меня была такая же проблема в IE 6.
Я использовал инструмент повышения производительности (DynaTrace Ajax Edition), чтобы увидеть, где была задержка, и я нашел его в функции даты обновления, выполняемой для события keyup.
Итак, моя работа заключалась в том, чтобы деактивировать событие keyup.
$( "#idOfTheInput" ).unbind("keyup");
РЕДАКТИРОВАТЬ: Есть недостаток сделать это. При вводе даты вручную, средство выбора даты не обновляется.
Итак, еще одно (лучшее?) Решение состоит в том, чтобы отображать средство выбора даты только тогда, когда пользователь нажимает на маленькую кнопку с параметром showOn: 'button'
(подробнее здесь: http://jqueryui.com/demos/datepicker/#icon-trigger)
Затем измените код средства выбора даты JQuery, чтобы обновлять дату только тогда, когда отображается средство выбора даты. Для этого найдите функцию _doKeyUp
и добавьте условие, гласящее: «Если отображается средство выбора даты, выполните обновление, в противном случае не обновляйте».
_doKeyUp: function(event) {
var inst = $.datepicker._getInst(event.target);
if ($.datepicker._datepickerShowing) {
if (inst.input.val() != inst.lastVal) {
try {
var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
(inst.input ? inst.input.val() : null),
$.datepicker._getFormatConfig(inst));
if (date) { // only if valid
$.datepicker._setDateFromField(inst);
$.datepicker._updateAlternate(inst);
$.datepicker._updateDatepicker(inst);
}
}
catch (event) {
$.datepicker.log(event);
}
}
}
return true;
},
Конечно, немного неприятно менять код плагина ...