HighDots Forums  

Re: Hintergrundfarbe auf onClick

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Re: Hintergrundfarbe auf onClick in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Hintergrundfarbe auf onClick - 10-17-2004 , 08:26 AM






Michael Döring wrote:

Quote:
Ich möchte gern innerhalb von onClick einer <checkbox> die
Hintergrundfarbe einer anderen <textarea> namens "text2" innerhalb des
gleichen Formulars ändern. Und zwar abhängig davon, ob die <checkbox
checked oder nicht checked ist.
Wenn die <checkbox> checked ist, soll für <textarea> die Farbe verwendet
werden, die in deren style-Tag steht.
Es gibt kein style-Tag. Du meinst vermutlich das style-Attribut des
textarea-Elements.

Quote:
Wenn nicht, die Farbe aus der funktion changeColor().

Mein Versuch:

form action="xyz"
script language="JavaScript" type="text/javascript"
^^^^^^^^^^^^^^^^^^^^^
Veraltet.

Quote:
!--
^^^^
Überflüssig.

Quote:
function changeColor() {
this.form.text2.style.backgroundColor = "#000000";
}
// --
^^^^^^
Überflüssig.

Quote:
/script

input type="checkbox" name="info" value="ja"
^^^^^^^^^^ Unfug!
onClick="this.form.text2.changeColor()=!this.check ed;"
Das kann nicht funktionieren. changeColor() liefert keinen Rückgabewert
und ...

Quote:
textarea name="text2">usw...usw...</textarea

Ich bekomme immer wieder Fehlermeldungen wie z.B. "Kann dem Ergebnis einer
Funktion nicht zugewiesen werden" etc.
.... "=" ist der Zuweisungsoperator. Der Call-Operator "()" darf in
JavaScript und ECMAScript nur auf der rechten Seite einer Anweisung
auftreten. Du solltest beim Programmieren wirklich erheblich mehr
Tee[tm] zu Dir nehmen.

Quote:
Würdet Ihr mir bitte kurz auf die Sprünge helfen?
<form action="xyz">
...
<input type="checkbox" name="info"
onclick="this.form.elements['text2'].style.backgroundColor =
this.checked ? '' : '#000';">ja
...
<textarea name="text2">usw...usw...</textarea>
...
</form>

oder

<script type="text/javascript">
function changeColor(o, sName, sColor, bColor)
{
var oTarget;
if (o
&& (oTarget = o.form)
&& (oTarget = o.form.elements)
&& (oTarget = o['text2'])
&& typeof oTarget.style != "undefined"
&& typeof oTarget.style.backgroundColor != "undefined")
{
o.style.backgroundColor = bColor ? '' : sColor;
}
}
</script>

<form action="xyz">
...
<input
type="checkbox"
name="info"
id="info"
onclick="changeColor(this, 'text2', '#000', this.checked)"
Quote:
label for="info">ja</label
...
<textarea
name="text2"
style="background-color:silver"
Quote:
usw...usw...</textarea
...
</form>


PointedEars
--
http://members.ud.com/download/gold/
http://folding.stanford.edu/
http://alien.de/seti/
http://setiathome.ssl.berkeley.edu/


Reply With Quote
  #2  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Hintergrundfarbe auf onClick - 10-17-2004 , 08:46 AM






Thomas 'PointedEars' Lahn wrote:

Quote:
Michael Döring wrote:
onClick="this.form.text2.changeColor()=!this.check ed;"

[...]
Der Call-Operator "()" darf in JavaScript und ECMAScript
nur auf der rechten Seite einer Anweisung auftreten. [...]
Ganz so stimmt das auch nicht.

function blubb()
{
return window;
}

blubb().x = 42;
alert(window.x); // 42

ist bleistiftsweise zulässig. Korrekt müsste sein: Der Call-Operator
darf nur dann auf der linken Seite einer Zuweisung auftreten, wenn
dessen Operand nicht letzter Operand auf dieser Seite ist.

Bezüglich Deines Quelltextes bedeutet das: "." ist der Lookup-Operator,
damit ist changeColor() in Deinem Quelltext der letzte Operand auf der
linken Seite, und das ist folglich unzulässig.


PointedEars
--
__
2||i
e -- so zeigt sich die Schönheit der Mathematik.
-- Prof. Dr. rer. nat. habil. Dr.h.c. Hansjoachim Walther


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.