Consti: Textfarbe per Event in Mozilla ändern

Hallo zusammen!

Bin ziemlich am verzweifeln! Ich möchte in einem Formular einige input-elemente disablen, eine Textfarbe und ein Bild ändern, wenn ein bestimmter Eintrag in einem select-feld(name=auswahl) ausgewählt wird:

function deak(){
for(i=0;i<4;i++)
if(document.forms[0].auswahl.options[i].selected==true){
  anfang=13;
  if(i<2){
   while(anfang<20){
    anfang++;
    document.forms[0].elements[anfang].disabled=1;}
   document.all['text'].style.color='#888888';
   document.all['bild'].src='bild_2.gif';}}}

Das disablen klappt soweit in IE als auch MOZ, aber den Text im Formular (id=text, kein input-Element) grau werden lassen und das Bild verändern lassen funktioniert so wie ichs hier mache (mit document.all['id']) nur im IE, aber nicht in MOZ. Was mach ich falsch??

...<td id="text" style="color:#000000">test</td>...

  1. Hi,

    versuchs mal in der Art:

    document.getElementById('text').style.color='#E84035'

    Vielleicht packt er's so.

    Greetz

    function deak(){
    for(i=0;i<4;i++)
    if(document.forms[0].auswahl.options[i].selected==true){
      anfang=13;
      if(i<2){
       while(anfang<20){
        anfang++;
        document.forms[0].elements[anfang].disabled=1;}
       document.all['text'].style.color='#888888';
       document.all['bild'].src='bild_2.gif';}}}

    1. Dank für die schnelle Antwort!

      Das habe ich schon ausprobiert und leider klappt das nicht, dann sogar nicht mal mehr im IE. Ich denke das liegt daran, dass ein <td> kein Element im klassischen Sinn ist. Ich kanns ja auch nicht mit document.forms[0].elements[betimmte Zahl] aufrufen. Das sind ja nur die <inputs</<textarea> usw.

      1. Hi,

        Das habe ich schon ausprobiert und leider klappt das nicht, dann sogar nicht mal mehr im IE. Ich denke das liegt daran, dass ein <td> kein Element im klassischen Sinn ist. Ich kanns ja auch nicht mit document.forms[0].elements[betimmte Zahl] aufrufen. Das sind ja nur die <inputs</<textarea> usw.

        Ja, weil du dich dann nur auf Formular-Inhalte beziehen willst und ein td ist nunmal kein Formular-Element. document.forms[0] liefert dir nicht alle Elemente zwischen <form> und </form>!

        Der Yeti

        --
        Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
        Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
        Und bin so klug als wie zuvor!
        sh:( fo:| ch:? rl:? br:< n4:& ie:( mo:| va:| de:[ zu:) fl:| ss:) ls:< js:|
        [Link:http://community.de.selfhtml.org/fanprojekte/selfcode.htm]
        1. Also liegt das Problem darin, wie ich einen stinknormalen Text per javascript in Mozilla ansprechen kann... Kann mir da keiner helfen??

          1. Hi,

            Also liegt das Problem darin, wie ich einen stinknormalen Text per javascript in Mozilla ansprechen kann... Kann mir da keiner helfen??

            Der stinknormale Text muss von einem Element umschlossen sein, dann kannst du mit Methoden wie document.getElementById oder document.getElementsByName oder document.getElementsByTagName dieses Element ansprechen und ihm z.B. per .style.color eine neue Farbe zuweisen.

            P.S.: Reine Theorie, da ich hier z.Zt. keinen Mozilla habe.

            Der Yeti

            --
            Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
            Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
            Und bin so klug als wie zuvor!
            sh:( fo:| ch:? rl:? br:< n4:& ie:( mo:| va:| de:[ zu:) fl:| ss:) ls:< js:|
            [Link:http://community.de.selfhtml.org/fanprojekte/selfcode.htm]
  2. Hi,

    document.all['text'].style.color='#888888';

    all ist veraltete IE-Syntax.

    Für alle Browser gilt:

    if(document.getElementById) document.getElementById("text").style.color='#888888';

    document.all['bild'].src='bild_2.gif';}}}

    Gleiches hier (mit getElementsByName), aber man kann eine ältere Variante nehmen:

    if(document.images) document.images["bild"].src='bild_2.gif';

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Danke für die Antwort!

      Das Problem dabei ist allerdings, dass der zu verändernde Text kein Form-Element ist, sondern ein normaler Text und er deshalb nicht mit getelementsbyid erfasst wird.

      1. Hi,

        Das Problem dabei ist allerdings, dass der zu verändernde Text kein Form-Element ist, sondern ein normaler Text und er deshalb nicht mit getelementsbyid erfasst wird.

        ? In deinem Beispiel war der Text in einer Tabellenzelle mit einer ID.

        Vielleicht sollten wir in die FAQ aufnehmen, daß man bei Fragen auch ein *passendes* Beispiel postet, und nicht ein zufälliges aus einem Pool von 100 irrelevanten.

        Ansonsten steht es Dir natürlich frei, um jeden beliebigen Text ein <span> mit ID zu setzen. Das geht, man möchte es kaum glauben, mit JavaScript sogar nachträglich ... =;-)

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!