Html5 Formularfelder dynamisch einblenden funktioniert nicht

wmcig

Grünschnabel
Hallo,

ich bin kein Neuling mit HTML5 und CSS3. Doch weitere Sprachen zur Programmierung sind nicht so mein Fall.

Ich habe ein Formular erstellt, in dem Felder bei Bedarf eingeblendet werden sollen.

Es geht um folgenden Code Ausschnitt:
HTML:
<div class="row">
<div class="grid-4 label"><label>Werden andere Einkünfte erzielt?</label></div>
<div class="grid-s-12 grid-3"><select id="einkuenfte1" name="einkuenfte1" onchange="einblenden()"><option value="1">Nein</option><option value="2">Ja</option></select></div>
    </div>
<div class="row">
    <div class="grid-s-4 grid-3"><input id="einkuenfte2" type="text" name="einkunftshoehe1" placeholder="Höhe der Einkünfte angeben" value="" style="display: none";></div>
    <div class="grid-s-4 grid-3"><input type="text" name="arbeitgeberanschrift1" placeholder="Adresse des Arbeitgebers angeben" value=""></div>
   <div class="grid-s-12 grid-3"><select name="einkuenfte_nachweis1"><option value="1">Ja</option><option value="2">Nein</option></select></div>
    </div>
</p>

Der dazugehörige Javascript Code befindet sich im header:
Javascript:
<script type="text/javascript">
    function einblenden(){
        var select = document.getElementById('einkuenfte1').selectedIndex;
        if(select == 2) document.getElementById('einkuenfte2').style.display = "block";
        else document.getElementById('einkuenfte2').style.display = "none";       
    }
</script>

Das Attribut body hat ein onload="einblenden()" bekommen.

Doch das Einblenden der Felder bei der Auswahl "Ja" funktioniert nicht und ich weiss nicht warum.

Weiss jemand Rat dazu?
 
Warum onload ?
Gib den Select mal ein onchange, und zwar so
*** Link entfernt, weil Seite nicht mehr erreichbar ***

Besser wäre es, aber wenn du addEventListener benutzt
 
Zuletzt bearbeitet:
du fragst den index ab . der index ist die 2 stelle und javascript zählt ab 0. also ist die 2 stelle 1 . du siehst ja im code das es geht .
Dann must du das
.selectedIndex;
in das
.value;
ändern dann reagiert er auch auf die 1 und 2 im value.

habe das im code gerade geändert
 

Neue Beiträge

Zurück