Pergunta

Eu tenho o novo widget de preenchimento automático no JQuery UI 1.8rc3 funcionando muito bem no Firefox. Não funciona no IE. Alguém pode me ajudar?

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;
    }
});

Resultado (ou seja, 8):

A caixa vermelha é o <ul> Elemento criado por jQuery.

Eu também recebo este erro:

Line: 116
Error: Invalid argument.

Quando eu o abro no depurador de scripts do IE8, ele destaca f[b]=d na linha 116 de jQuery.min.js. Observe que estou usando a versão 1.4.2 do jQuery hospedado nos servidores do Google (https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js).

Eu tentei remover algumas das opções, mas mesmo quando ligo .autocomplete() Sem opções, ou apenas com a opção de origem, ainda recebo o mesmo resultado.

Mais uma vez, está funcionando no Firefox, mas não no IE. Alguma sugestão?

Obrigado.

ATUALIZAR: Como sugerido, usei o jQuery.js (em vez do jQuery.min.js) e recebi o erro na linha 4618. Veja a resposta de Jitter abaixo. Por favor, veja Esta outra questão de transbordamento de pilha Isso foi postado há alguns dias.

Atualização 2: Descobri que o JQuery UI AutoComplete usa uma propriedade inválida this.element.height, quando deveria estar usando a função this.element.height()

Foi útil?

Solução

Se eu entendo isso certo, a linha a que você se refere parece ser a linha 4618 em jQuery.1.4.2.js no style função. O que só pode significar que o plug -in do AutoCompleter tenta definir um valor de estilo que o IE8 não entende ou não permite ser acessado/alterado dessa maneira.

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

Outras dicas

Eu tenho exatamente o mesmo erro na mesma linha, mas para um negócio completamente diferente. Isto é, não estou fazendo nada a ver com preenchimento automático; Em vez disso, o meu ocorre porque estou tentando isso no jQuery ...

$(this).css('background', 'rgba(64,255,64,.4)');

Qual jQuery tenta fazer ...

style [ 'background' ] = 'rgba(64,255,64,.4)';

E falha, é claro, porque o RGBA não é um valor CSS suportado para o Internet Explorer. Então você não está sozinho neste, mas no meu caso eu estava apenas fazendo errado. A sintaxe jQuery apropriada é essa ...

$(this).css({backgroundColor: '#40ff40', opacity: .4});

Aqui está minha fonte ...

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top