Aktualisierung von Auswahllisten
Marko Prasse
- javascript
Hej,
irgendwie habe ich ein ziemliches simples Problem, habe aber keine Ahnung, wie ich es lösen soll:
Ich habe ein Editfeld und eine Auswahlliste, z.B. mit den Einträgen ab,ba,bb,cd,...
Wie kann ich es schaffen, daß bei Eingabe eines b's in das Editfeld nur noch Einträge mit b* (ba, bb) in der Auswahlliste vorhanden sind?
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.
Hat da jemand eine Idee?
Marko
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