Javascript Formular - je nach Dropdown bereiche anzeigen
sebastian1992
- javascript
Hallo,
ich mache z.Z.: ein Bestellungsformular und das Javascript macht bei mir Probleme.
Javascript ist einfach nicht mein Ding ;-)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Bestellung</title>
<style type="text/css">
#doener{
display: none;
}
</style>
<script type="text/javascript">
function change(formular)
{
switch(formular.speise.value)
{
case "w":
break;
case "d":
document.getElementById("doener").style.display = block;
break;
case "p";
break;
}
}
</script>
</head>
<body>
<div>
<h1>Bestellformular</h1>
<fieldset>
<legend>Speiße</legend>
<select name="speise" onchange="change(this)">
<option value="w">- bitte wählen -</option>
<option value="d">Döner</option>
<option value="p">Pizza</option>
</select>
</fieldset>
<form action="/" method="post">
<div id="doener">
...
</div>
</form>
</div>
</body>
</html>
Habe den Code jetzt mal aufs wesentliche gekürzt...
Wenn ich onchange verwenden, passiert nichts. Habe das switch mal rausgenommen, es liegt daran, wenn ich stattdessen nur ein alert("change()");
mache, gehts.
Javascript ist einfach nicht mein Ding ;-)
http://de.selfhtml.org/javascript/objekte/options.htm#value
Siechfred
Und wo ist nun der Fehler bei mir??
Und wo ist nun der Fehler bei mir??
Dein Code greift auf das Value des select-Elementes zu:
formular.speise.value
Du willst aber den value des gewählten option-Elementes wissen, siehe dazu den geposteten Link.
Siechfred
Du willst aber den value des gewählten option-Elementes wissen, siehe dazu den geposteten Link.
Habe es jetzt mit der Funktion gelöst:
function setVisibility() {
var val=document.forms[0].speise.selectedIndex;
doener.style.display = 'none';
pizza.style.display = 'none';
if(val==1) doener.style.display = 'block';
if(val==2) pizza.style.display = 'block';
}
So muss ich net immer alles prüfen.
Mahlzeit sebastian1992,
<select name="speise" onchange="change(this)">
Du übergibst hier als Parameter für die Funktion das <select>-Objekt.
function change(formular)
{
switch(formular.speise.value)
{
Und hier versuchst Du, auf den Wert eines Objekts namens "speise", das sich unterhalb des übergebenen Objekts befinden soll, zuzugreifen. Das existiert natürlich nicht.
Sinnvollerweise solltest Du die Funktion vielleicht folgendermaßen anfangen:
function change(liste) {
switch (liste.value) {
~~~...
MfG,
EKKi
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|