Antje Hofmann: Aktualisierung von Auswahllisten

Beitrag lesen

Hallo Marko

Ich habe ein Editfeld und eine Auswahlliste, z.B. mit den Einträgen ab,ba,bb,cd,...

Die Funktionalität des Heraussuchens bekomme ich ohne Probleme hin, nur fehlt mir die Idee, wie ich "falsche" Einträge löschen kann (und zwar auch für IE) bzw. die Auswahlliste sinnvoll aktualisieren kann.

das geht relativ einfach. Schwierig ist nur die Behandlung von Opera.

<html><head><title>Test</title>
<script type="text/javascript">
<!--
function raus()
{
var Opera=document.Formular.liste.length; //Bedingung damit die Schleife in Opera abbrechen kann
var OperaUnfug=0; //Zähler der Durchläufe

for (var i=0;i<document.Formular.liste.length;i++)
{
  OperaUnfug++;

if ((document.Formular.liste[i].text).substring(0,1)=="a")
 {
  document.Formular.liste[i]=null; //Löschen des Elementes, macht Opera nicht

i--; //Zurücksetzen von i, da sofort an der Stelle des gelöschten Elementes, dass nächste Element tritt

}

if (OperaUnfug==Opera) break; //Anbruch der Schleife
}
if (document.Formular.liste[0]) document.Formular.liste[0].selected=true  //selektieren des ersten Elementes

}
//-->
</script>

</head><body onload="raus()">
<form name="Formular" action="" method="" target="">
<select name="liste" size="1">
 <option value="a1">a
 <option value="a3">a
 <option value="b1">b
 <option value="a2">a
 <option value="c2">c
 <option value="b2">c
</select>

</form>
</body></html>

Seitenhieb an alle Operaliebhaber:
Es ist eine extrem schwache Kür eines Browserherstellers, dass er das Optionobjekt offensichtlich nicht implementiert hat (neue Options lassen sich auch nicht erzeugen). Dieses Objekt gibt es seit der Javascriptversion 1.0 und Opera behauptet er versteht JavaScript 1.3

Viele Grüße

Antje