Javascript select sichtbar machen

Hallo,

ich habe ein kleines Problem bei dem ich nicht weiterkomme.

Ich habe hier einige versteckte p-Tags aus denen ich den Inhalt auslese. So weit so gut.

Jetzt habe ich 2 select Boxen, die eine versteckt.

Ich will mit der Javascript Funktion erreichen, dass die zweite SelectBox sichtbar wird sobald man in der ersten selectBox einen Wert ausgewählt hat der in einer der versteckten p-Tags steht die die id=„gruppe“ haben.

<!–
function thehidden(val) {
for (i = 0; i < parseInt(document.all.bis.innerText); i++)
{
if (document.all[i].gruppe.innerText == val)
{
document.all.wertigkeit.style.display=„inline“;

}
else
{
document.all.wertigkeit.style.display=„none“;

}
}
}
–>
eins
zwei
2

einszweidrei123

Hi,
dein Skript enthält mehrere Punkte, die dein Vorhaben untergraben:

  • im onChange EventHandler ist der Funktionsaufruf falsch geschrieben
  • Die Logik der for schleife ist nicht richtig. Es wird jedesmal für alle Elemente mit der id „gruppe“ durchlaufen. Wenn der letzte Wert nicht dem Wert von val entspricht, wird die select Box versteckt. Alle anderen Überprüfgungen sind dann hinfällig. Du möchtest aber bei einem Treffer aufhören und die Box sichtbar schalten.
  • dein vergleich des Inhaltes des Inhaltes eines p-tags mit dem Wert des Select „beschr“ kann nie richtig sein. Deine Werte sind Zahlen (1,2,3). Die Inhalte der P-Tags Wörter. („eins“,„zwei“,„drei“)
  • ids sollten eindeutig sein und nicht doppelt vergeben werden („gruppe“(
  • „document.all“ - diese Objektansprache eignet sich nur für den Internet explorer
  • Statt versteckter P-tags könntest du übrigens auch Hidden Input Felder nutzen. Das ist üblicher.

Hier ein Beispiel, wie du es machen könntest:

<!–

function thehidden(val) {

counter1 = (document.getElementById(„bis“).firstChild.nodeValue);
if(counter1 > 0)
{
foundval = false;
for (i = 0; i < counter1; i++)
{
if (document.getElementById(„gruppe“+i).firstChild.nodeValue == val)
{
document.getElementById(„wertigkeit“).style.display = „block“;
foundval = true;
break;
}
}
if(!foundval)
{
document.getElementById(„wertigkeit“).style.display = „none“;
}
}
}

–>
1
2
2

einszweidrei123