Автозаполнение пользовательского интерфейса jQuery работает в Firefox, но не в IE
-
20-09-2019 - |
Вопрос
У меня есть новый виджет автозаполнения в jQuery UI 1.8rc3, который отлично работает в Firefox.В IE это вообще не работает.Кто-нибудь может мне помочь?
HTML:
<input type="text" id="ctrSearch" size="30">
<input type="hidden" id="ctrId">
Javascript:
$("#ctrSearch").autocomplete({
source: "ctrSearch.do",
minLength: 3,
focus: function(event, ui){
$('#ctrSearch').val(ui.item.ctrLastName + ", " + ui.item.ctrFirstName);
return false;
},
select: function(event, ui){
$('#ctrId').val(ui.item.ctrId);
return false;
}
});
Результат (IE 8):
Красная коробка — это <ul>
элемент, созданный jQuery.
Я также получаю эту ошибку:
Line: 116 Error: Invalid argument.
Когда я открываю его в отладчике сценариев IE8, он выделяет f[b]=d
в строке 116 jquery.min.js.Обратите внимание, что я использую версию 1.4.2 jQuery, размещенную на серверах Google (https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js).
Я пробовал удалить некоторые параметры, но даже когда я звоню .autocomplete()
без параметров или только с параметром источника я все равно получаю тот же результат.
Еще раз: в Firefox это работает, но не в IE.Какие-либо предложения?
Спасибо.
ОБНОВЛЯТЬ: Как было предложено, я использовал jquery.js (вместо jquery.min.js) и получил ошибку в строке 4618.См. ответ джиттера ниже.Пожалуйста, посмотри еще один вопрос о переполнении стека это было опубликовано несколько дней назад.
ОБНОВЛЕНИЕ 2: Я обнаружил, что автозаполнение пользовательского интерфейса jQuery использует недопустимое свойство. this.element.height
, когда следует использовать функцию this.element.height()
Решение
Если я правильно понимаю, строка, на которую вы ссылаетесь, кажется строкой 4618 в jquery.1.4.2.js в style
функция.Это может означать только то, что плагин Autocompleter пытается установить значение стиля, которое IE8 не понимает или не позволяет получить доступ/изменить таким образом.
style[ name ] = value; //style == elem.style from the passed in element
Другие советы
У меня точно такая же ошибка в той же строке, но совсем по другой сделке.То есть я не делаю ничего, связанного с автозаполнением;скорее, мое происходит потому, что я пробую это в jQuery...
$(this).css('background', 'rgba(64,255,64,.4)');
Что jQuery пытается сделать...
style [ 'background' ] = 'rgba(64,255,64,.4)';
И это, конечно же, не удается, потому что rgba не является поддерживаемым значением CSS для Internet Explorer.Итак, вы не одиноки в этом вопросе, но в моем случае я просто делал это неправильно.Соответствующий синтаксис jQuery таков...
$(this).css({backgroundColor: '#40ff40', opacity: .4});
Вот мой источник...