Автозаполнение пользовательского интерфейса jQuery работает в Firefox, но не в IE - PullRequest
4 голосов
/ 16 марта 2010

У меня есть новый виджет автозаполнения в 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.

image

I also get this error:

Line: 116
Error: Invalid argument.

When I open it in the IE8 script debugger, it highlights f[b]=d on line 116 of jquery.min.js. Note that I'm using version 1.4.2 of jQuery hosted on Google's servers (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()

Ответы [ 2 ]

5 голосов
/ 16 марта 2010

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

style[ name ] = value; //style == elem.style from the passed in element
1 голос
/ 31 июля 2010

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

...