Value einer Listbox mit Javascript
Thomas Müller
- javascript
Hall,
ich habe folgendes Javascript:
<SCRIPT>
<!--
function hideObject(obj)
{
if ( obj.style ) { obj = obj.style; }
obj.visibility = 'hidden';
}
function showObject(obj)
{
if ( obj.style ) { obj = obj.style; }
obj.visibility = 'visible';
}
-->
</SCRIPT>
<SELECT name="eid" size="1" onChange="showObject('eid'+this.form.eid.options[this.form.eid.selectedIndex].value);">
<option value="1">Rennrad
<option value="2">Schwimmen
<option value="3">Laufen
</SELECT>
<DIV id=eid1 style="LEFT: 100px; VISIBILITY: hidden; POSITION: absolute; TOP: 120px">
<TABLE cellSpacing=0 cellPadding=0 border=0 width="100">
<TBODY>
<TR>
<TD class=dropdown>
<A class=menlink href="news.asp">Alle News</A><BR>
<A class=menlink href="news.asp?CID=1">Triathlon</A><BR>
<A class=menlink href="news.asp?CID=2">Duathlon</A><BR>
<A class=menlink href="news.asp?CID=99">Presse</A><BR>
</TD>
</TR>
</TBODY>
</TABLE>
</DIV>
Abhängig vom ausgewählten Listboxelement soll nun der dazugehörige DIV Tag angezeigt werden. Mein Problem:
Ruf ich showObject(eid1); direkt auf, funktioniert es. Obenstehendes Beispiel funktioniert nicht. Hier wird weder ein JS Fehler ausgegeben, noch das DIV Tag angezeigt.
Woran liegts?
Lg
Hi!
<SELECT name="eid" size="1" onChange="showObject('eid'+this.form.eid.options[this.form.eid.selectedIndex].value);">
Da fehlt ein Punkt.
Ausserdem kannst du noch kürzen: this.form.eid.options[this.form.eid.selectedIndex].value wird zu this[this.selectedIndex].value (ungeprüft).
Ausserdem wären Debugging-Ausgaben oder Fehlermeldungen (damit meine ich nicht die vom IE) hilfreich.
Gruß
Martin
Hallo Thomas Müller,
<SCRIPT>
^ hier fehlt type="text/javascript"
if ( obj.style ) { obj = obj.style; }
obj.visibility = 'hidden';
wenn ich das richtig sehe, ist obj ein String mit der ID. Bau mal hier ein alert(obj) ein. Daher ist die if-Bedingung immer falsch. Schau dir mal document.getElementById an.
Gruß, Jürgen
Hallo,
stimmt, wenn ich mir obj mit alert ausgeben lassen, stehen hier zwei paar verschiedene sachen drinnen.
"document.getElementById", wie ist dies hier zu verwenden?
Sorry für das "dumme fragen stellen" ...
Lg
Thomas
Hallo Thomas Müller,
<SCRIPT>
^ hier fehlt type="text/javascript"if ( obj.style ) { obj = obj.style; }
obj.visibility = 'hidden';wenn ich das richtig sehe, ist obj ein String mit der ID. Bau mal hier ein alert(obj) ein. Daher ist die if-Bedingung immer falsch. Schau dir mal document.getElementById an.
Gruß, Jürgen
Hi!
<SCRIPT>
<!--[code lang=javascript]
function hideObject(obj)
{
if ( document.getElementById(obj).style ) { document.getElementById(obj).style = 'hidden';
}
}
function showObject(obj)
{
if ( document.getElementById(obj).style ) { document.getElementById(obj).style = 'visible';
}
}
//
~~~-->
</SCRIPT>
<!--Da fehlten noch die Javascript-Kommentarzeichen-->[/code]
--
Selfcode: [ie:{ fl:( br:^ va:) ls:# fo:| rl:( n4:( ss:| de:> js:) ch:? sh:( mo:| zu:)](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%5E+va%3A%29+ls%3A%23+fo%3A%7C+rl%3A%28+n4%3A%28+ss%3A%7C+de%3A%3E+js%3A%29+ch%3A%3F+sh%3A%28+mo%3A%7C+zu%3A%29)
Hallo, leider nich nicht.
Der Firefox sagt noch:
Fehler: setting a property that has only a getter
Quelldatei: http://localhost/trimag/triplan/plan.asp?do=newEintrag&UserID=1&Tag=08.06.2005
Zeile: 33
Zeile 33:
if ( document.getElementById(obj).style ) { document.getElementById(obj).style = 'visible';
Lg
Tom
Hi!
<SCRIPT>
<!--[code lang=javascript]
function hideObject(obj)
{
if ( document.getElementById(obj).style ) { document.getElementById(obj).style = 'hidden';
}
}function showObject(obj)
{
if ( document.getElementById(obj).style ) { document.getElementById(obj).style = 'visible';
}
}
//
> </SCRIPT>
> <!--Da fehlten noch die Javascript-Kommentarzeichen-->[/code]
Tag Thomas.
Fehler: setting a property that has only a getter
document.getElementById(obj).style = 'visible';
Du referenzierst auf style, welches seinerseits ein Objekt ist, weswegen du ihm keinen Wert zuweisen darfst ("getter"). Überlege, welche Eigenschaft du setzen willst und suche dir die entsprechende Eigenschaft heraus, die geändert werden soll. Auf der verlinkten Seite wird auch die korrekte Syntax dargestellt.
Siechfred