Felix Riesterer: style.visibility tut net... warum?

Liebe Selfer,

ich verzweifle! Ich versuche einen Textabsatz <p id="smileys"> per Javascript und CSS (document.getElementById("smileys").style.visibility) sichtbar, bzw. unsichtbar zu machen. Ausgelöst wird die Umschaltung durch onClick auf eine Checkbox. Es will und will nicht funktionieren!

Hier zum ausprobieren:
http://riesterer.ri.funpic.de/testform.html (es könnte cut&paste nötig sein)

Hier meine Javascript-Funktion:

function sichtbarkeit()
 { // form heißt "posting", die checkbox heißt "smileyschalter"
 var schalter = document.posting.smileyschalter.checked;
 var absatz = document.getElementById("smileys");
 alert(absatz.style.visibility); // nur zum Testen!
 if(schalter == "true") absatz.style.visibility = "visible";
 if(schalter == "false") absatz.style.visibility = "hidden";
 return;
 }

Wo liegt der Fehler? Ich habe mich sehr eng an das Beispiel in SelfHTML gehalten. Das Verrückte daran ist, dass mir der Browser nichteinmal den momentanen Wert für die Eigenschaft visibility anzeigen kann, denn es kommt ein komplett leeres alert-Fenster!

Ich verstehe die Welt nimmer!

Liebe Grüße aus Ellwangen,

Felix Riesterer.

  1. Hi,

    vielleicht kann das hier jemand aufklären der sich damit auskennt, aber mein IE6 macht das ab dem Moment wo du die visibility auch vorher mal gesetzt hast (sonst kennt er das style-attribut wohl nicht):
    <p id="smileys" style="visibility: hidden;">

    Ach ja, noch was:
     if(schalter == "true") absatz.style.visibility = "visible";
     if(schalter == "false") absatz.style.visibility = "hidden";
    Bitte ohne die " bei true und false, sonst wird das vermutlich auf wackeligen Füßen stehen...

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
    1. Hi Rouven,

      Ach ja, noch was:
      if(schalter == "true") absatz.style.visibility = "visible";
      if(schalter == "false") absatz.style.visibility = "hidden";
      Bitte ohne die " bei true und false, sonst wird das vermutlich auf wackeligen Füßen stehen...

      ich schmeiß mich wech: DAS war's! Wie konn't ich nur...
      Zwar bekomme ich sowohl im Feuerfüchslein als auch im IE6 eine leere Alert-Meldung, aber danach tut sich was in Sachen Visibility! Sehr schön. Danke!

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

      1. Hey,

        die leere Meldung verschwindet sobald du das Ding vorher (wie ich oben geschrieben hab) setzt, vorher ist ihm die Eigenschaft wohl unbekannt...

        MfG
        Rouven

        --
        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  2. if(schalter == "true") absatz.style.visibility = "visible";
    if(schalter == "false") absatz.style.visibility = "hidden";
    return;

    true und false sind Schlüßelwörter in JS, keine Strings. Wenn du einen Editor mit Syntaxhighliting (z.b. Proton) benutzt siehst du das.

    Struppi.