Max Mustermann: Checkbox - disabled Textfeld?

Hi Leute,

schaut euch doch mal den Quelltext an. Ich komme da einfach nicht weiter. Wenn die Checkbox "gecheckt" ist, soll das Textfeld "normal" sein, ansonsten disabled:
Head:
<script language="javascript" type="text/javascript">
<!--
function En() {
    if {
    document.GetElementsByName('vtd')[0].checked = true;
    document.GetElementsByName('box')[0].disabled = false; }
    else {
    document.GetElementsByName('box')[0].disabled = true; }
    }
-->
</script>
Body:
<input type="checkbox" name="vtd" onChange="En()">
<input type="text" name="box">

Wenn ich da bei der Checkbox onClick nehme, tut es auch nicht.
Bin dankbar für jede Hilfe.

cu, Max.

  1. Hello,

    <script language="javascript" type="text/javascript">
     <!--
     function En()
     {
       if
       {
         document.GetElementsByName('vtd')[0].checked = true;
         document.GetElementsByName('box')[0].disabled = false;
       }
       else
       {
         document.GetElementsByName('box')[0].disabled = true;
       }
     }
     -->
     </script>

    Das steht da, wenn man die Formatierung der Klammern und Umbrüche etwas übersichtlicher einsetzt.

    Nun schau selber

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  2. Hallo!

    Du gibst in deinem Code kein Argument an die if-Abfrage weiter! Außerdem gibt es in JavaScript 2 verschiedene Arten von Gleichheitszeichen:

    1. "=": Weist einer Variablen einen bestimmten Wert zu
       Bsp: var Wetter = "schön";
    2. "==": Wird benutzt, um eine Gleichheit zu überprüfen und weist einer Variablen _nicht_ einen Wert zu:
       Bsp: if(Wetter == "schön")
             { alert("TOLL"); }

    In deinem Fall müsste also das erste "=" ein "==" sein. Ausserdem fehlt bei dir die Klammer der If-Abfrage und deren Inhalt.

    Schau mal auf selfHTML im JavaScript-Bereich nach If-Abfragen. Da ist das eigentlich ganz gut erklärt.

    Gruß

    Mastershrimp

    1. Hi Leute,

      Und wo liegt jetzt noch der Fehler? Der IE sagt was mit Zeile 6;
      <html>
      <head>
      <title>Test</title>
      <script language="javascript" type="text/javascript">
       <!--
       function En() {
         if()
         {
           document.GetElementsByName('vtd')[0].checked == true;
           document.GetElementsByName('box')[0].disabled = false;
         }
         else
         {
           document.GetElementsByName('box')[0].disabled = true;
         }
       }
       -->
       </script>
      </head>
      <body>
      <input type="checkbox" name="vtd">
      <input type="text" name="box">
      </body>
      </html>

      cu, Max.

      1. Das "document.GetElementsByName('vtd')[0].checked == true" muss _in_ die Klammern der if()-Abfrage!

        if(document.GetElementsByName('vtd')[0].checked=="true")
         { ... }

        Lies dir mal das hier durch. Dann verstehst du's
        http://selfhtml.teamone.de/javascript/sprache/bedingt.htm

        Gruß

        Mastershrimp

        1. Hallo!

          Jetzt hab ich es so, dass es doch eigentlich gehen müsste! Aber es geht nicht:
          <html>
          <head>
          <title>Test</title>
          <script language="javascript" type="text/javascript">
           <!--
           function En() {
             if(document.GetElementsByName('vtd')[0].checked == true)
             {
               document.GetElementsByName('box')[0].disabled = false;
             }
             else
             {
               document.GetElementsByName('box')[0].disabled = true;
             }
           }
           -->
           </script>
          </head>
          <body>
          <input type="checkbox" name="vtd" onClick="En()">
          <input type="text" name="box">
          </body>
          </html>

          cu, Max

          1. Hallo!

            Jetzt hab ich es so, dass es doch eigentlich gehen müsste!

            Fast ;-))

            Aber es geht nicht:
               document.GetElementsByName(...

            Das Objekt document hat keine Methode GetElementsByName(). Es hat eine Methode getElementsByName().

            viele Grüße

            Axel

            1. Hallo!

              Das Objekt document hat keine Methode GetElementsByName(). Es hat eine Methode getElementsByName().

              Vielen, vielen Dank, hab ich gar nicht gemerkt. Aber jetzt klappt es einwandfrei!

              cu, Max