Pregunta

Tengo el nuevo widget de autocompletar en jQuery UI 1.8rc3 funcionando muy bien en Firefox. No funciona en absoluto en el IE. Alguien me puede ayudar?

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 (IE 8):

El cuadro rojo es el elemento <ul> creado por jQuery.

También sale este error:

Line: 116
Error: Invalid argument.

Cuando lo abro en el depurador de scripts IE8, destaca f[b]=d en la línea 116 de jquery.min.js. Tenga en cuenta que estoy usando la versión 1.4.2 de jQuery alojados en los servidores de Google ( https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js ).

He intentado eliminar algunas de las opciones, pero incluso cuando llamo .autocomplete() sin opciones, o solamente con la opción de origen, todavía obtener el mismo resultado.

Una vez más, se está trabajando en Firefox, pero no en IE. ¿Alguna sugerencia?

Gracias.

ACTUALIZACIÓN: Como se ha sugerido, solía jquery.js (en lugar de jquery.min.js) y obtuvo la respuesta de error en la línea 4618. Véase la fluctuación a continuación. Por favor, ver esta otra pregunta desbordamiento de pila que fue publicado hace unos días.

Actualización 2: descubrí que jQuery UI autocompletar utiliza un this.element.height propiedad no válido, cuando debería estar utilizando la función this.element.height()

¿Fue útil?

Solución

Si entiendo este derecho de la línea que se refieren a parece ser la línea 4618 en jquery.1.4.2.js en la función style. Que sólo puede significar que el plugin Autocompleter intenta establecer un valor de estilo que IE8 no comprende o no permite ser visitada / cambiado de esta manera.

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

Otros consejos

Tengo exactamente el mismo error en exactamente la misma línea, pero para un reparto completamente diferente. Es decir, no estoy haciendo todo lo que tenga que ver con la función de autocompletar; más bien, la mía se produce porque estoy tratando esto en jQuery ...

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

¿Qué jQuery trata de hacer ...

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

Y se produce un error, por supuesto, porque RGBA no es un valor CSS compatible para Internet Explorer. Así que usted no está solo en esto, pero en mi caso sólo estaba haciendo mal. La sintaxis de jQuery apropiado es esto ...

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

Esta es mi fuente ...

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top