Formularfeld einblenden mit Javascript
Mathiis
- javascript
Hallo, ich habe eine Dropdownliste. Hier möchte ich je nach Auswahl eines Menüpunktes weitere Formularfelder einblenden oder ausblenden.
Mein Script sieht so aus:
{literal}
<script type="text/javascript">
function visibility(value) {
var value=document.form1.form[kind].selectedIndex;
if (value == 1) {
document.form1.raum.style.display = 'none';
} else {
document.form1.raum.style.display = 'block';
}}
</script>
{/literal}
Meine Dropdownliste so:
<tr>
<th scope="row"><div align="left"><span class="Stil1">Terminart: </span></div></th>
<td>
<select name="form[kind]" class="" style="width: 120px" onChange="visibility()">
<option value="0" selected>Bitte auswählen</option>
<option value="1">Klassentermin</option>
<option value="2">Blocktermin</option>
<option value="3">Freier Termin</option>
</select>
</td>
</tr>
und das, was ich ausblenden möchte so:
<tr>
<th width="168" scope="row"><div align="left"><span class="Stil1">Raum</span>:</div></th>
<td width="182">
<select id="raum" name="form[raum_id]" class="" style="width: 120px; height: 20px; margin-bottom:10px">
{if $raum}
<option value="0" selected>Bitte auswählen</option>
{foreach item=w key=keys from=$raum}
{if $class.raum == $w.raum_id}
<option value="{$w.raum_id}" selected>{$w.raum_nummer} </option>
{else}
<option value="{$w.raum_id}">{$w.raum_nummer} </option>
{/if}
{/foreach}
{else}
<option value="{$keys}" selected>kein Raum</option>
{/if}
</select>
</td>
</tr>
<tr>
Die beiden Menüs befinden sich in der Form:
<form name="form1" method="post" action="#">
Leider wird bei mir nichts ausgeblendet. Hat jemand eine Idee, woran es liegen könnte?
Hi,
Leider wird bei mir nichts ausgeblendet. Hat jemand eine Idee, woran es liegen könnte?
Browser und JavaScript-Interpreter interessieren sich nicht fuer serverseitigen Code - und wir daher bei der Diskussion eines clientseitigen Problems genauso wenig.
Stelle also den Code zum Problem so zur Verfuegung, wie ihn der Client erhaelt.
Und in die Fehlerkonsole des Browsers hast du bereits geschaut?
MfG ChrisB
Und in die Fehlerkonsole des Browsers hast du bereits geschaut?
Also eine Fehlermeldung finde ich nicht in der Konsole.
Stelle also den Code zum Problem so zur Verfuegung, wie ihn der Client erhaelt.
»»
Brauchst du nun den Seitenquelltext von mir?
Das wäre dann denke ich der hier:
<form name="form1" method="post" action="">
<p><span class="headline">Termineingabe</span>
</p>
<p></p>
<table border="1" width="366">
<tbody><tr>
<th scope="row"><div align="left"><span class="Stil1">Terminart: </span></div></th>
<td>
<select name="form[kind]" class="" style="width: 120px;" onchange="visibility()">
<option value="0" selected="selected">Bitte auswählen</option>
<option value="1">Klassentermin</option>
<option value="2">Blocktermin</option>
<option value="3">Freier Termin</option>
</select>
</td>
</tr>
<tr>
<th scope="row" width="168"><div align="left"><span class="Stil1">Raum</span>:</div></th>
<td width="182">
<select id="raum" name="form[raum_id]" class="" style="width: 120px; height: 20px; margin-bottom: 10px;">
<option value="0" selected="selected">Bitte auswählen</option>
<option value="4">363 </option>
<option value="5">262 </option>
</select>
</td>
</tr>
<tr>
<th scope="row"><div align="left"><span class="Stil1">Anfangsdatum:</span></div></th>
<td>
<input id="startdate" name="form[startdate]" size="5" style="width: 120px;" value="" type="text">
<input class="button_log" button="" id="Calenderstart" value="Kalender" type="button">
</td>
</tr>
<tr>
<th scope="row"><div align="left"><span class="Stil1">Enddatum</span>:</div></th>
<td>
<input id="enddate" name="form[enddate]" size="5" style="width: 120px;" value="" type="text">
<input class="button_log" button="" id="Calenderend" value="Kalender" type="button">
</td>
</tr>
<tr>
<th scope="row"><div align="left"><span class="Stil1">Uhrzeit von: </span></div></th>
<td>
<select name="form[starttime]" class="" style="width: 120px;">
<option value="0" selected="selected">Bitte auswählen</option>
<option value="080000">08.00</option>
<option value="083000">08.30</option>
<option value="090000">09.00</option>
<option value="093000">09.30</option>
<option value="100000">10.00</option>
<option value="103000">10.30</option>
<option value="110000">11.00</option>
<option value="113000">11.30</option>
<option value="120000">12.00</option>
<option value="123000">12.30</option>
<option value="130000">13.00</option>
<option value="133000">13.30</option>
<option value="140000">14.00</option>
<option value="143000">14.30</option>
<option value="150000">15.00</option>
<option value="153000">15.30</option>
<option value="160000">16.00</option>
<option value="163000">16.30</option>
<option value="170000">17.00</option>
<option value="173000">17.30</option>
<option value="180000">18.00</option>
<option value="183000">18.30</option>
<option value="190000">19.00</option>
<option value="193000">19.30</option>
</select>
</td>
</tr>
<tr>
<th scope="row"><div align="left"><span class="Stil1">Uhrzeit bis: </span></div></th>
<td>
<select name="form[endtime]" class="" style="width: 120px;">
<option value="0" selected="selected">Bitte auswählen</option>
<option value="083000">08.30</option>
<option value="090000">09.00</option>
<option value="093000">09.30</option>
<option value="100000">10.00</option>
<option value="103000">10.30</option>
<option value="110000">11.00</option>
<option value="113000">11.30</option>
<option value="120000">12.00</option>
<option value="123000">12.30</option>
<option value="130000">13.00</option>
<option value="133000">13.30</option>
<option value="140000">14.00</option>
<option value="143000">14.30</option>
<option value="150000">15.00</option>
<option value="153000">15.30</option>
<option value="160000">16.00</option>
<option value="163000">16.30</option>
<option value="170000">17.00</option>
<option value="173000">17.30</option>
<option value="180000">18.00</option>
<option value="183000">18.30</option>
<option value="190000">19.00</option>
<option value="193000">19.30</option>
<option value="200000">20.00</option>
</select>
</td>
</tr>
<tr>
<th scope="row"><div align="left"><span class="Stil1">Wiederholend:</span></div></th>
<td>
<select name="form[repeat]" class="" style="width: 120px;">
<option value="6" selected="selected">Bitte auswählen</option>
<option value="0">Keine Wiederholung</option>
<option value="1">Jeden Tag</option>
<option value="2">Jede Woche</option>
<option value="3">Alle 2 Wochen</option>
<option value="4">Alle 4 Wochen</option>
</select>
</td>
</tr>
</tbody></table>
<p> </p>
<p><br>
</p>
<input value="add_confirm" name="inhalt" type="hidden">
<input class="button_log" value="Eintragen" type="submit">
</form>
Gelöst.
Der Fehler lag am : value=document.form1.form[kind].selectedIndex;
Es muss value=document.form1.kind.selectedIndex; heissen.
Lieber Mathiis,
Der Fehler lag am : value=document.form1.form[kind].selectedIndex;
Es muss value=document.form1.kind.selectedIndex; heissen.
nein. Es ist nur form[kind]
etwas völlig anderes als form["kind"]
bzw. form.kind
(letztere sind im Grunde äquivalent)! Aber ich glaube, das siehst Du jetzt nimmer, gell?
Liebe Grüße,
Felix Riesterer.
»»Aber ich glaube, das siehst Du jetzt nimmer, gell?
Hallo,
doch das sehe ich noch und freue mich, dass ihr euch trotzdem noch damit befasst, obwohl ich der Meinung war, es gelöst zu haben. :-)
Ich werde dann mal weiter experimentieren.
Viele Grüße
doch das sehe ich noch und freue mich, dass ihr euch trotzdem noch damit befasst, obwohl ich der Meinung war, es gelöst zu haben. :-)
Hast du nicht, zumindest nicht mit dem Code, den du uns gezeigt hast.
Struppi.
»» doch das sehe ich noch und freue mich, dass ihr euch trotzdem noch damit befasst, obwohl ich der Meinung war, es gelöst zu haben. :-)
Hast du nicht, zumindest nicht mit dem Code, den du uns gezeigt hast.
Struppi.
Wenn du den Formularnamen meinst, ja, den habe ich geändert.
Wenn du den Formularnamen meinst, ja, den habe ich geändert.
Ich meine den Code, den wir bisher gesehen haben.
Struppi.
Gelöst.
Der Fehler lag am : value=document.form1.form[kind].selectedIndex;
Es muss value=document.form1.kind.selectedIndex; heissen.
In dem Fall hättest du auch einen Fehler in der Fehlerkonsole finden müssen.
Struppi.
Gelöst.
Der Fehler lag am : value=document.form1.form[kind].selectedIndex;
Es muss value=document.form1.kind.selectedIndex; heissen.
Noch was.
Zumindest nachdem was wir kennen, ist auch das falsch. da der Name des Formualfeldes bei dir "form[kind]" ist, es sei denn du hast es mittlerweile umbenannt.
Struppi.
Mahlzeit Mathiis,
»» Und in die Fehlerkonsole des Browsers hast du bereits geschaut?
Also eine Fehlermeldung finde ich nicht in der Konsole.
Dann gab es also keinen Fehler.
»» Stelle also den Code zum Problem so zur Verfuegung, wie ihn der Client erhaelt.
Brauchst du nun den Seitenquelltext von mir?
ChrisB braucht im derzeitigen Stadium Deines Problems ebenso wenig Seitenquelltext wie sonst jemand hier. Erst einmal ist es notwendig, dass Du den Unterschied zwischen serverseitigem und clientseitigem Code verstehst.
Verstanden? Gut. Dann können wir ja weitermachen: Du willst also, dass sich <http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onchange@title=beim Ändern> einer Auswahlliste irgendein <http://de.selfhtml.org/javascript/sprache/objekte.htm#this@title=von ihrem> http://de.selfhtml.org/javascript/objekte/options.htm#value@title=Wert abhängiges http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=Etwas <http://de.selfhtml.org/css/eigenschaften/positionierung.htm#display@title=ein- oder ausblendet>?
MfG,
EKKi