2010-03-16 11 views
4

У меня есть новый виджет автозаполнения в jQuery UI 1.8rc3, отлично работающий в Firefox. Это не работает вообще в IE. Кто-нибудь может мне помочь?jQuery UI autocomplete не работает в 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.

http://i40.tinypic.com/6q9quu.jpg

Я также получаю эту ошибку:

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. Какие-либо предложения?

Спасибо.

UPDATE: Как и было предложено, я использовал jquery.js (вместо jquery.min.js) и получил ошибку в строке 4618. См. Ответ jitter ниже. Пожалуйста, см. this other Stack Overflow question, который был опубликован несколько дней назад.

UPDATE 2: я обнаружил, что JQuery UI автозаполнения использует недействительный свойство this.element.height, когда он должен использовать функцию this.element.height()

+3

Питер. Не используйте мини-версию jQuery для отладки. Вероятнее всего, будет больше информации, чем «f [b] = d в строке 116 jquery.min.js», если вы замените вместо jQuery.js. – spender

+1

спрей правый. При разработке свопинга с измененной версией по сравнению с полномасштабным jQuery http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js, чтобы получить более точную информацию об отладке – jitter

+0

Если я найду время, я мог бы изучить это завтра. У меня нет IE8 прямо сейчас – jitter

ответ

5

Если я понимаю, это право на линии, которую вы смотрите, кажется, линия 4618 в jquery.1.4.2.js в функции style. Это может означать только то, что плагин Autocompleter пытается установить значение стиля, которое IE8 не понимает или не позволяет получить доступ/изменить таким образом.

style[ name ] = value; //style == elem.style from the passed in element 
+1

Я обнаружил, что автозаполнение jQuery UI использует недопустимое свойство this.element.height, когда оно должно использовать функцию this.element.height() –

+1

Хорошо, что вы поняли это. Вы сделали отчет об ошибке в jQuery UI-проблеме? – jitter

1

У меня такая же ошибка на той же самой линии, но для совершенно другой сделки. То есть, я не делаю ничего общего с автозаполнением; скорее, мое происходит потому, что я пытаюсь это в 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}); 

Вот мой источник ...

http://www.cjs.me.uk/blog/?p=238

+0

Я получаю сообщение об ошибке в строке 4618 ... где «значение» равно null. Это происходит с .effect ('highlight', {}, 1000) –

 Смежные вопросы

  • Нет связанных вопросов^_^