-Tom-: Eingabefeld ein-/ausblenden über Dropdownmenü

Hi,

ich will ein Eingabefeld einblenden, wenn bei einer Dropdownliste ein bestimmer Eintrag gewählt wurde. Bei allen anderen Dropdowneinträgen soll das Eingabefeld nicht angezeigt werden.

Ich habe zwar ein Script gefunden, dass macht aber entweder im IE Probleme, oder aber im FF und Opera.

So sieht das ganze aus:

  
<script type="text/javascript">  
<!--  
function Number(){  
 if(document.getElementById('dropdown').selectedIndex == 3)  
 {  
   document.getElementById('alt').style.visibility = "visible";  
 }  
 else  
 {  
   document.getElementById('alt').style.visibility = "hidden";  
 }  
}  
//-->  
</script>  

Und das Dropdownmenü:

  
<select name="Numbers" id="dropdown" onchange="Number()">  
  <option selected>0</option>  
  <option>1</option>  
  <option>2</option>  
  <option>X</option>  
</select>  
<br>  
<input type="text" size="5" id="alt" name="alt" value="Alternative" style="visibility:hidden;">

Jetzt ergeben sich folgende Probleme:

Im FF und Opera wird das Eingabefeld zu Beginn _immer_ erst angezeigt. Wähle ich dann einen anderen Eintrag (auch wenn ich wieder zurück zum ersten wechsle) verschwindet das Eingabefeld, beim letzten Eintrag wird es wieder korrekt eingeblendet. Im IE ist alles korrekt.

Also dachte ich, setze doch einfach den letzten Eintrag an die erste Stelle im Menü, dann wäre ja egal, wenn er fälschlicherweise zunächst angezeigt wird.

Aber Pustekuchen, jetzt machen FF und Opera es korrekt, nur der IE hat jetzt quasi genau das inverse Problem. Sprich:

Das Eingabefeld wird zu Beginn _nicht_ angezeigt. Wähle ich einen anderen Eintrag, bleibt es wie gewünscht ausgeblendet, erst wenn ich dann wieder zum ersten Eintrag wechsle, wird es angezeigt.

Weiß jemand, was man da machen könnte?

  1. Hallo,

    Weiß jemand, was man da machen könnte?

    es ist ungünstig eine Funktion http://de.selfhtml.org/javascript/objekte/number.htm@title=Number zu nennen ...

    Gruß plan_B

    --
         *®*´¯`·.¸¸.·
    1. Okay, danke für den Hinweis :D

      Ändert aber leider nichts an dem Fehler.

      1. Hallo,

        Ändert aber leider nichts an dem Fehler.

        ich kann das von dir beschriebene Verhalten nicht reproduzieren und sehe keinen Fehler.

        mein Code macht auch nix anderes als deiner

          
        function toggle(sel,name2){  
         sel.form.elements[name2].style.visibility =  
          sel.selectedIndex == 3 ?  "visible" : "hidden" ;  
        }  
        
        
          
        <select name="Numbers" id="dropdown" onchange="toggle(this,'alt')">  
          <option selected>0</option>  
          <option>1</option>  
          <option>2</option>  
          <option>X</option>  
        </select>  
        <input type="text" size="5" id="alt" name="alt" value="Alternative"  
        
        

        Gruß plan_B

        --
             *®*´¯`·.¸¸.·
        1. eine Zeile verlorengegangen

            
          
          > <input type="text" size="5" id="alt" name="alt" value="Alternative"  
          
          <input type="text" size="5" id="alt" name="alt" value="Alternative" style="visibility:hidden;">  
          
          

          Gruß plan_B

          --
               *®*´¯`·.¸¸.·
          1. Ich werd noch verrückt, jetzt klappt es auch mit meinem Script, nachdem ich testweise mal dein Code reinkopiert habe ... hab doch sonst nichts geändert!?

            Nichts desto trotz, vielen Dank für die Hilfe :)