Erhalte Optionen für Datenlisten in IE9 mit JavaScript

8

Dieser Code funktioniert in allen gängigen Browsern außer Internet Explorer 9. Ich verstehe nicht, was ich falsch mache, es ist wahrscheinlich etwas einfaches, das ich vermisse.

Kopieren Sie diesen Code (oder dieses jsFiddle ), um das Problem in IE9 zu sehen:

%Vor%

Ich möchte, dass es am Ende so browserübergreifend wie möglich ist.

    
Timo Huovinen 12.09.2012, 18:53
quelle

3 Antworten

8

IE 9 ignoriert option -Elemente, die keine direkten Kinder eines select -Elements sind (oder optgroup in einem). Eine einfache Lösung besteht darin, Ihre option -Elemente mithilfe von bedingten Kommentaren in ein verstecktes select -Element einzufügen:

%Vor%

Hier ist eine jsFiddle-Demo zu diesem Ansatz.

2017 Update: Es ist erwähnenswert, dass ab Juli 2017 Safari auf iOS & amp; Der Mac hat immer noch keine Unterstützung für <datalist> -Elemente hinzugefügt. OP hat nach einer Lösung gefragt, die alle gängigen Browser unterstützt, daher ist dies wahrscheinlich nicht die beste Lösung für diesen Effekt.

Weitere Informationen hier: Ссылка

    
Jordan Gray 12.03.2013, 18:03
quelle
3

Aus irgendeinem Grund funktionierte die Lösung nicht für mich. Stattdessen habe ich die Autocomplete-Methode von jQuery UI und Modernizr verwendet, um zu überprüfen, ob der Browser dies unterstützt.

Ich benutzte diesen JavaScript-Code:

%Vor%

Für den folgenden HTML-Code:

%Vor%

Verwendet den folgenden Microsoft-Beitrag als Referenz: Ссылка

    
Kremena Lalova 12.06.2014 14:11
quelle
0

Sie müssen ein IE-Element hinzufügen, das die Kompatibilitätsansicht des Inhalts für IE8 definiert, und außerdem die Dummy-Element-Erstellungslinie aktivieren - sie wird ebenfalls benötigt.

Also sollte Ihr <head> jetzt so aussehen:

%Vor%     
Debloper 12.09.2012 19:47
quelle