in select-option display auf none im IE
nobswolf
- javascript
0 Gunnar Bittersmann0 ChrisB0 Struppi
Ich will so was ähnliches wie das hier:
http://forum.de.selfhtml.org/archiv/2009/7/t189344/#m1261456
Aber das ist halt schon im Archiv.
sl.options[x].style.setAttribute('display', 'none', false);
funktioniert im Firefox ganz wunderbar. 'sl' ist das Element des umschließenden select und mit 'x' wird über die Länge iteriert.
Der IE7 akzeptiert das zwar syntaktisch, tut aber einfach nichts.
In anderen Foren hab ich schon gelesen, dass es da ein Problem gibt, aber egal welchen Hinweis ich verfolge (mit setAttribute oder direkt über DOM oder mit dem Style-Array) immer funktioniert es mit FF und mit IE nicht.
Hat wer eine Lösung die auch mit dem IE7 tut?
Workaround wäre alles umschreiben und die Select-Option komplett neu füllen, aber das würde ich gern vermeiden, wenn es für "display=none" eine funktionierende Syntax gibt.
@@nobswolf:
nuqneH
Ich will so was ähnliches wie das hier:
http://forum.de.selfhtml.org/archiv/2009/7/t189344/#m1261456
Aber das ist halt schon im Archiv.
Schade eigentlich, denn dort fehlt der Hinweis, dass eine ID dokumentweit eindeutig sein muss.
sl.options[x].style.setAttribute('display', 'none', false);
funktioniert im Firefox ganz wunderbar.
?? In welcher Version sollte das funktionieren?
Und willst du wirklich die Auswahloption nicht anzeigen oder lediglich ausgrauen (@disabled)?
Qapla'
In welcher Version sollte das funktionieren?
Ich komme gerade nicht an den Source; ich dampfe bei nächster Gelegenheit mal ein Beispiel zusammen.
Fakt ist: im FF3 funktioniert das vollständige Verbergen einer Option über Javascript mit display="none" und im IE7 funktioniert es nicht.
Und willst du wirklich die Auswahloption nicht anzeigen oder lediglich ausgrauen (@disabled)?
Disable habe ich ehrlich gesagt noch nicht versucht; das wäre vielleicht noch eine Lösung. Schon mal Danke für die Idee.
@@nobswolf:
nuqneH
Fakt ist: im FF3 funktioniert das vollständige Verbergen einer Option über Javascript mit display="none"
aber wohl nicht mit dem Code sl.options[x].style.setAttribute('display', 'none', false);
Disable habe ich ehrlich gesagt noch nicht versucht; das wäre vielleicht noch eine Lösung. Schon mal Danke für die Idee.
Per Attribut setzen funktioniert es im IE auch nicht. Aber möglich, dass er eine Eigenschaft dafür kennt, die man auf true oder false setzen muss.
Qapla'
aber wohl nicht mit dem Code
hast recht, da bin ich wohl beim Testen durcheinander gekommen.
ich habe nun aufgegeben; ich speichere die Daten nun in einer Datenstruktur und fülle das select jedesmal komplett neu
@@nobswolf:
nuqneH
ich habe nun aufgegeben
Warum?
Lass mich das für dich googeln!
Vielleicht kannst du mit Activating option disabled in IE was anfangen.
Qapla'
Lass mich das für dich googeln!]
Googlen kann ich schon... aber das sind halt finstere Hacks und keine Lösungen. Da wird in JS das Verhalten des Browsers nachprogrammiert.
Andere Artikel empfehlen als Lösung das Aufbauen der Optionen aus einer Datenstruktur. Das erscheint mir erheblich geradliniger und wartbarer als eine Browser-Unterscheidung.
Ich theoretisiere gerne mal über verschiedene Lösungsansätze, aber dieses Thema ist für mich abgeschlossen. Danke für Deine Bemühungen.
Hi,
Hat wer eine Lösung die auch mit dem IE7 tut?
Wahrscheinlich gibt es die mit display:none nicht - die MSDN führt in ihrer Beschreibung der display-Eigenschaft vermutlich mit eben diesem Grund OPTION nicht unter "Applies To" auf.
MfG ChrisB
In anderen Foren hab ich schon gelesen, dass es da ein Problem gibt, aber egal welchen Hinweis ich verfolge (mit setAttribute oder direkt über DOM oder mit dem Style-Array) immer funktioniert es mit FF und mit IE nicht.
Bei mir funktioniert im IE 6 null
function del(form, name) {
form[name][0] = null;
}
<form action="" >
<select name="sel">
<option>opt 1</option>
<option>opt 2</option>
<option>opt 3</option>
</select>
Struppi.