Auswahlliste mit Funktion verknüpfen

avenuetoni

Mitglied
Hallo allerseits,

ich soll als eine Aufgabe bei Auswahl einer Option einer Auswahlliste dafür sorgen, dass über eine Funktion sich unter der Auswahlliste daraufhin ein neues Textfeld öffnet, in das etwas eingegeben werden kann. Als Tipp stand dabei man sollte innerHTML dafür verwenden. Ich habe schon viele Möglichkeiten ausprobiert und auch im Internet nichts wirklich dazu gefunden :/.

Das habe ich bisher, aber es funktioniert nicht. Könnt ihr mir helfen, was mache ich falsch?

HTML-Code:
<select id="anliegen" name="anliegen" required>
<option value="">bitte ausw&auml;hlen</option>
<option value="Ticketbestellung" >Ticketbestellung</option>
<option value="Presseanfrage">Presseanfrage</option>
<option value="Sonstiges">Sonstiges</option>
</select>
<div id="Verlag"></div>
<div id="Gesamt"></div>
(ist natürlich alles im <form> tag)

Javascript-Code:
var anlieg=document.getElementById('anliegen');
anlieg.onchange= function aendern () {
if(value=="Ticketbestellung") {
var show= document.getElementById('Verlag');
show.innerHTML= "<label for='verlagtext'>Verlag:</label> <br><input type='text' name='verlagtext' id='verlagtext' maxlength='50' value=''>";
}
}

Warum funktioniert das mit dem div Container und innerHTML nicht?
LG 🙂
 
Ich habe mich verguckt und deshalb war meine Antwort falsch.

Hast Du mal einfach einen alert("Test"); oder so in deine onchange() gemacht um zu sehen ob die überhaupt aufgerufen wird?
 
Ohne dass ich jetzt eine Ahnung von innerHTML hätte sehe ich nur dass die Anzahl von Gänsefüsschn (") in dieser Anweisung irgendwie nicht paarweise ist. Kann es so was sein ?
 
Ohne dass ich jetzt eine Ahnung von innerHTML hätte sehe ich nur dass die Anzahl von Gänsefüsschn (") in dieser Anweisung irgendwie nicht paarweise ist. Kann es so was sein ?

Das war auch meine erste Antwort aber wenn Du mal genau hinsiehst, dann erkennt man, dass das vorletzte Gänsefüßchen eigentlich zwei einfach Hochkomma sind und damit stimmt es wieder 😉

Gruß

Claus
 
Hallo

HTML:
<html>
<head>

</head>
<body>

<script>
    var onchange= function () {
    alert("HI");
    }
</script>
<select id="anliegen" name="anliegen" onchange="onchange()">
<option value="">bitte ausw&auml;hlen</option>
<option value="Ticketbestellung" >Ticketbestellung</option>
<option value="Presseanfrage">Presseanfrage</option>
<option value="Sonstiges">Sonstiges</option>
</select>
</body>
</html>

ansonsten überprüft ob var anliegen != null ist?

Oder mit:

HTML:
document.getElementById("anliegen").addEventListener("onchange", function(){
    alert("HI");
});

P.S Na dann ist das Problem ja gelöst 🙂

Grüße
 
Zuletzt bearbeitet:
Vielleicht kann ein Mod das mal ins Javascript verschieben?

Interessant das kann ich selber... Da ist wohl was schief gelaufen beim Ändern meines Status....
 
@truesoul : Ja, deine Codefragmente funktionieren, und das funktioniert auch:

HTML:
<body>

<script>
    var onchange= function () {
         var show= document.getElementById('Verlag');
         show.innerHTML= "<label for='verlagtext'>Verlag:</label> <br><input type='text' name='verlagtext' id='verlagtext' maxlength='50' value=''>";
    }
</script>
<select id="anliegen" name="anliegen" onchange="onchange()">
<option value="">bitte ausw&auml;hlen</option>
<option value="Ticketbestellung" >Ticketbestellung</option>
<option value="Presseanfrage">Presseanfrage</option>
<option value="Sonstiges">Sonstiges</option>
</select>
<div id="Verlag"></div>
<div id="Gesamt"></div>
</body>

Aber vielleicht kann der TO mal sagen was genau bei ihm nicht funktioniert ?
 
Und so funktioniert überigens auch die Abfrage auf Ticketbestellung:

HTML:
<script>
    var onchange= function () {
         var anlieg=document.getElementById('anliegen');
         if (anlieg.value=="Ticketbestellung") {
            var show= document.getElementById('Verlag');
            show.innerHTML= "<label for='verlagtext'>Verlag:</label> <br><input type='text' name='verlagtext' id='verlagtext' maxlength='50' value=''>";
         }
     }
</script>
 

Neue Themen


Zurück
Oben