Uschi Renziehausen: Input-Feld (un)sichtbar machen

Beitrag lesen

Guggug

html-Code um deine Funktionen drumrumbauen kann ich so nicht, weil ich zu wenig durchblicke, was da welches Element sein soll.
Allerdings kannst du mit meinem Vorschlag, einfach das type-Attribut umzumodeln deshalb nix anfangen, weil der IE das nicht macht (Mozilla und Opera sehr wohl). Testen kannst du das, indem du den folgenden Code mal in allen dreien betrachtest.
<html>
 <head>
  <title></title>
   <script language="JavaScript1.3" type="text/javascript">
    function setVisibility(val) {
     if(val == 0) {
      document.getElementById('module7').setAttribute('type', 'hidden', true);
     } else {
      document.getElementById('module7').setAttribute('type', 'text', true);
     }
    }
   </script>
 </head>
 <body>
 <form name="myForm">
  <select name="selModules" id="modules" onchange="setVisibility(this.selectedIndex.value)">
   <option value="0">Bitte auswählen</option>
   <option value="1">Modul 1</option>
   <option value="2">Modul 2</option>
  </select>
  <input type="hidden" "name=module7" id="module7" value="7" />
  <p id="par" align="left">Absatz zum zentrieren</p>
  <input type="button" value="zentrieren" onclick="document.getElementById('par').setAttribute('align', 'center');" />
 </form>
 </body>
</html>

Das align-Attribut des Absatzes ändert auch der IE artig, an das type-Attribut will er aber nicht ran. Das wusste ich leider auch noch nicht, aber frau lernt ja nie aus. Infolgedessen wirst du auf folgendes ausweichen müssen:

entweder document.getElementById('deinElement').style.visibility = 'hidden' respektive 'visible'
oder document.getElementById('deinElement').style.display = 'none' respektive 'inline' oder 'block'.

Achtung, wenn ein Formular-Element via display auf none gesetzt worden ist, wird es von den mir bekannten Browsern beim Posten auch nicht mit übertragen, bei visibility auf hidden hingegen schon.

Ich würde dir im übrigen dringend empfehlen, die Mozilla zu installieren. Dort gibt es nämlich eine JavaScript-Konsole und gar einen richtigen Debugger, die wesentlich informativere Fehlermeldungen mit vor allem richtiger Zeilenzählung auspucken als der IE.

Ich hoffe, das hilft dir ein wenig weiter. Wenn nicht, musst du vielleicht doch mal etwas Code online stellen :-))

Gruß, Uschi