jQuery UI lavori di completamento automatico in Firefox, ma non in IE
-
20-09-2019 - |
Domanda
Ho il nuovo widget di completamento automatico in jQuery UI 1.8rc3 grande lavoro in Firefox. Non funziona affatto in IE. Qualcuno può darmi una mano?
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;
}
});
Risultato (IE 8):
La scatola rossa è l'elemento <ul>
creato da jQuery.
Inoltre ottengo questo errore:
Line: 116 Error: Invalid argument.
Quando ho aperto nel debugger di script IE8, si evidenzia f[b]=d
sulla linea 116 di jquery.min.js. Si noti che sto usando la versione 1.4.2 di jQuery ospitato sui server di Google ( https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js ).
Ho provato a rimuovere alcune delle opzioni, ma anche quando chiamo .autocomplete()
senza opzioni, o con solo l'opzione di origine, ho ancora ottenere lo stesso risultato.
Ancora una volta, si sta lavorando in Firefox, ma non in IE. Qualche suggerimento?
Grazie.
UPDATE: Come suggerito, ho usato jquery.js (invece di jquery.min.js) e ottenuto l'errore sulla risposta linea 4618. Sede di jitter inferiore. Consulta quest'altra domanda Stack Overflow che è stato pubblicato pochi giorni fa.
UPDATE 2: ho scoperto che jQuery UI autocomplete utilizza un this.element.height
proprietà non valida, quando si dovrebbe utilizzare la funzione this.element.height()
Soluzione
Se ho capito questo diritto la linea si fa riferimento a sembra essere la linea 4618 di jquery.1.4.2.js nella funzione style
. Che può solo significare che il plugin Autocompleter tenta di impostare un valore di stile che IE8 non capisce o non permette di accedere / cambiato in questo modo.
style[ name ] = value; //style == elem.style from the passed in element
Altri suggerimenti
Ho lo stesso errore esatto sulla stessa identica linea, ma per un affare completamente diverso. Cioè, io non sto facendo nulla hanno a che fare con il completamento automatico; piuttosto, il mio si verifica perché sto cercando questo in jQuery ...
$(this).css('background', 'rgba(64,255,64,.4)');
Quali jQuery cerca di fare ...
style [ 'background' ] = 'rgba(64,255,64,.4)';
E non riesce, naturalmente, perché RGBA non è un valore CSS supportato per Internet Explorer. Quindi non sei solo su questo, ma nel mio caso ero solo facendo male. La sintassi jQuery appropriata è questo ...
$(this).css({backgroundColor: '#40ff40', opacity: .4});
Ecco la mia fonte ...