musti2008: Firefox Tabellen ein/ausblenden - style.display = 'block';

Hallo...

habe ein Problem mit Firefox (2.0.0.13)
habe eine Tabelle wie man unten ein Teil sehen kann
und blende per Button click (display.none -> block )zeilen ein und aus...

klappt alles wunderbar unter IE aber und firefox erkennt der in der
wieder eingeblendeten Zeile das colspan nicht bzw behandelt es
als würde es kein colspan geben...

function enableTr()
{
  if(document.getElementById('zusatz1').style.display=='none')
  {
       document.getElementById('zusatz1').style.display = 'block';
       document.getElementById('zusatz2').style.display = 'block';
       document.getElementById('zusatz3').style.display = 'block';
      }
      else
      {
       document.getElementById('zusatz1').style.display = 'none';
       document.getElementById('zusatz2').style.display = 'none';
       document.getElementById('zusatz3').style.display = 'none';
      }
}
function enableTr2()
{
       document.getElementById('zusatz1').style.display = 'none';
       document.getElementById('zusatz2').style.display = 'none';
       document.getElementById('zusatz3').style.display = 'none';
}
//-->

<tr  bgcolor=DCDCDC>
   <td width=130>
    <b>Bitte wählen</b>
   </td>
   <td colspan=3>
    <table width=100%><tr>
        <td width=30%><input type=radio name=art1 value=1 onClick="enableTr2();"> <img src=media/man2.jpg> Dienstleistung Intern</td>
        <td width=30%><input type=radio name=art1 value=2 onClick="enableTr();"> <img src=media/man2.jpg> Dienstleistung Extern</td>
        <td width=30%><input type=radio name=art1 value=3 onClick="enableTr2();"> <img src=media/telefon.jpg> Telefon Support</td>
    </table>
   </td>
  </tr>

----> ZEILE DIE EIN und aus geblendet werden soll
  <tr bgcolor=DCDCDC style="display: none;" id="zusatz1">
   <td colspan=4>
     <img src=media/car2.jpg><b> Fahrzeit</b>
   </td>
  </tr>

  1. Hallo musti2008,

    document.getElementById('zusatz1').style.display = 'block';

    block ist bei Tabellenelementen nicht ok. Versuch mal display = "", dann wird der Defaultwert genommen.

    Gruß, Jürgen

  2. Hi,

    klappt alles wunderbar unter IE

    ja, diese Bug ist bekannt. Der IE verfügt nur über einen sehr eingeschränkten "Wortschatz" bezüglich der display-Eigenschaft; sämtliche table-Typen sind ihm umbekannt[1].

    aber und firefox erkennt der in der
    wieder eingeblendeten Zeile das colspan nicht bzw behandelt es
    als würde es kein colspan geben...

    Natürlich, das <tr>-Element ist ja auch nicht mehr Teil der Tabelle. Dazu müsste es ein table-row-Typus sein.

    <tr  bgcolor=DCDCDC>

    "DCDCDC" ist kein Farbname. Außerdem solltest Du *unbedingt* *alle* Attributwerte in Anführungszeichen setzen.

    <td width=30%><input type=radio name=art1 value=1 onClick="enableTr2();"> <img src=media/man2.jpg> Dienstleistung Intern</td>

    Zumal wenn Du nicht weißt, bei welchen Werten es strikt verboten ist. Validiere Deine Codes. Was hat eigentlich ein width-Attribut außerhalb von Replaced Elements verloren?

    Cheatah

    [1] Wobei er auf "thead { display: table-row-group; }" tatsächlich insofern reagiert, als der Tabellenheader dann auf jeder Seite wiederholt wird. Für den Footer gilt das gleiche.

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Also der Vorschlag von Jürgen hat geklappt !
      vielen dank an der Stelle...

      So jetzt zu Antwort 2 ..
      Was ist mit validieren gemeint?
      ""DCDCDC" ist kein Farbname" ????
      Was hat eigentlich ein width-Attribut außerhalb von Replaced Elements ????

      1. Teanastellen!

        Was ist mit validieren gemeint?

        Überprüfen, ob's stimmt (d.h. dem Standard entspricht), am besten mithilfe eines Validators, der alle Fehler auflistet.

        ""DCDCDC" ist kein Farbname" ????

        Nein. Farbnamen sind sowas wie "red", "yellow" usw. Hex-Zahlenwerte müssen mit einem # beginnen.

        Was hat eigentlich ein width-Attribut außerhalb von Replaced Elements ????

        Im fertigen HTML, das an den Browser geschickt wird, sollten keine Darstellungsinformationen enthalten sein, da man diese besser ins CSS auslagert.

        Viele Grüße vom Længlich

        --
        Mein aktueller Gruß ist:
        Amharisch (gesprochen in Äthiopien)
      2. Was ist mit validieren gemeint?

        http://validator.w3.org

        ""DCDCDC" ist kein Farbname" ????

        Ja, siehe
        http://www.w3.org/TR/html401/types.html#type-color (HTML)
        http://www.w3.org/TR/CSS21/syndata.html#color-units (CSS)

        Was hat eigentlich ein width-Attribut außerhalb von Replaced Elements ????

        Weder TR noch TD haben ein width:
        http://www.w3.org/TR/html401/struct/tables.html#h-11.2.5

      3. @@musti2008:

        Was ist mit validieren gemeint?

        Prüfen, ob der Quelltext valide (gültig), dh. den Regeln entsprechend, ist.

        ""DCDCDC" ist kein Farbname" ????

        Nein. Ein Name sowieso nicht. Ein http://de.selfhtml.org/html/allgemein/farben.htm#hexadezimal@title=Farbwert auch nicht.

        Was hat eigentlich ein width-Attribut außerhalb von Replaced Elements ????

        Sämtliche Angaben zur Darstellung sollten mit CSS gemacht werden, nicht mit missbilligten HTML-Attributen. (Weshalb es 'width' für 'td' nur in der Transitional-Variante gibt; nicht aber in Strict.*)

        Live long and prosper,
        Gunnar

        * Warum gibt es 'width' für 'table' auch in Strict?

        --
        „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
        1. Hi,

          Was ist mit validieren gemeint?
          Prüfen, ob der Quelltext valide (gültig), dh. den Regeln entsprechend, ist.

          ... und eventuelle Fehler korrigieren. Sonst ist es keine Validierung ("Gültigmachung") :-)

          Was hat eigentlich ein width-Attribut außerhalb von Replaced Elements ????
          Sämtliche Angaben zur Darstellung sollten mit CSS gemacht werden, nicht mit missbilligten HTML-Attributen. (Weshalb es 'width' für 'td' nur in der Transitional-Variante gibt; nicht aber in Strict.*)

          Ergänzend: Replaced Elements sind solche, die durch einen nachzuladenden Inhalt ersetzt werden, also beispielsweise <img/>. Dort geben die width- und height-Attribute die intrinsischen Dimensionen jener Inhalte an; diese werden zwar vom Browser durchaus als Default-Werte für die Darstellung genommen, allerdings sind auch hier anderslautende Werte (z.B. wenn ein Bild kleiner dargestellt werden soll als es ist) in den CSS-Code auszulagern.

          * Warum gibt es 'width' für 'table' auch in Strict?

          Keine Ahnung. Warum gibt es <b> in Strict?

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
  3. @@musti2008:

    und blende per Button click (display.none -> block )zeilen ein und aus...

    klappt alles wunderbar unter IE aber und firefox erkennt der in der
    wieder eingeblendeten Zeile das colspan nicht bzw behandelt es
    als würde es kein colspan geben...

    Gibt es auch nicht für 'block'-Elemente.

    Der Wert der 'display'-Eigenschaft einer Tabellenzeile ist ja auch nicht 'block', sondern 'table-row'.

    Da IEs zu blöd dafür sind, einfach per foo.style.display = ''; auf den Defaultwert setzen.

    <tr  bgcolor=DCDCDC>

    Fehlerhafte Farbangabe. Und wozu misbilligte HTML-Attribute? Für sämtliche Angaben zur Darstellung ist CSS da!

    <table width=100%>

    Fehlerhaftes HTML. [HTML401 §3.2.2] S.a. Anmerkung der Übersetzer!

    <img src=media/car2.jpg><b> Fahrzeit</b>

    Dito. Den Validator kennst du schon?

    Live long and prosper,
    Gunnar

    --
    „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    1. Da IEs zu blöd dafür sind, einfach per foo.style.display = ''; auf den Defaultwert setzen.

      http://forum.de.selfhtml.org/archiv/2008/3/t168473/#m1099411

      die suche zu verwenden hätte geholfen

  4. Super alles klar.. ! Vielen Dank ! Schau mir die Tipps an !
    Muss noch was dazu lernen...