Ankündigung

Einklappen
Keine Ankündigung bisher.

JavaScript für Anfänger

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JavaScript für Anfänger

    Hi,

    habe mich in den letzten Tagen ein wenig mit Javascript auseinander gesetzt. Jetzt habe ich allerdings ein "Problem". Wahrscheinlich fehlt mir nur ein wenig das Verstädnnis dazu.

    Möchte folgendes erreichen und zwar möchte ich, wenn jemand auf eine bestimmte Checkbox klickt, dass alle anderen auch markiert werden. Aber ich hänge schon bei dem Punkt, dass ich bei der Checkbox onclick nicht reagiert.

    Habe folgende Checkboxen
    <input type="checkbox" name="tage" value="<? echo $alle; ?>" onclick="tage()"> Alle<br />
    <input type="checkbox" name="tage" value="<? echo $montag; ?>"> Montag<br />
    <input type="checkbox" name="tage" value="<? echo $dienstag; ?>"> Dienstag<br />
    <input type="checkbox" name="tage" value="<? echo $mittwoch; ?>"> Mittwoch<br />
    <input type="checkbox" name="tage" value="<? echo $donnerstag; ?>"> Donnerstag<br />
    <input type="checkbox" name="tage" value="<? echo $freitag; ?>"> Freitag<br />
    <input type="checkbox" name="tage" value="<? echo $samstag; ?>"> Samstag<br />
    <input type="checkbox" name="tage" value="<? echo $sonntag; ?>"> Sonntag<br />
    Und die JS-Funktion besteht zum testen nur aus einem alert() Befehl. Trotzdem passiert nichts. An der Funktion kann es nicht liegen, da wenn ich den Aufruf in onload packe funktioniert es. Was mache ich falsch, dass der onclick nicht funktioniert?

    Habe auch schon gegooglet, aber überall steht eigentlich das was ich auch dort stehen habe.


  • #2
    Bitte poste keinen PHP-Code, er ist nicht relevant fuer JavaScript, im Gegenteil, er verschleiert was wirklich an JS/HTML-Code existiert.

    Da du deine "tage()" Funktion nicht gepostet hast, kann ich dir im Moment auch nicht weiterhelfen, onclick ist zumindest der richtige Event.
    "Mein Name ist Lohse, ich kaufe hier ein."

    Kommentar


    • #3
      Wie gesagt, ich habe im Moment nur einen alert drin stehen:

      function tage()
      {
      alert("Hallo!!!");
      }
      Da ich wissen wollte ob es an was anderem in der Funktion liegt. Aber selbst der alert wird nicht aufgerufen. Bei <body onload="tage()"> funktioniert es, nur eben nicht bei onclick="tage()". Und das verstehe ich eben einfach nicht, vor allem da überall wo ich nachgeschaut habe, nichts anderes steht.

      Kommentar


      • #4
        onClick. Großes C verwenden.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Na super...ok. Also sind die ganzen onFocus() onBlur() usw. case sensitive? Ok, wie immer ein dummer Anfängerfehler. Danke für die Info!!!

          Kommentar


          • #6
            Glaube schon, ja. Probiers mal aus.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              onclick() ist "richtig".
              Für xhtml ist XHTML 1.0: The Extensible HyperText Markup Language (Second Edition) maßgeblich
              4.2. Element and attribute names must be in lower case
              und für html 4 On SGML and HTML
              Attribute names are always case-insensitive.

              Code:
              <html>
                <head><title>x</title>
                  <script>
                    function foo() {
                      var inputelements = document.getElementsByName('tage');
                      for(var i=1; i<inputelements.length; i++)
                      { 
                        inputelements[i].checked = inputelements[0].checked;
                      }
                    }
                  </script>
                </head>
                <body>
                  <input type="checkbox" name="tage" value="alle" onclick="foo()"> Alle<br />
                  <input type="checkbox" name="tage" value="Montag"> Montag<br />
                  <input type="checkbox" name="tage" value="Dienstag"> Dienstag<br />
                  <input type="checkbox" name="tage" value="Mittwoch"> Mittwoch<br />
                  <input type="checkbox" name="tage" value="Donnerstag>"> Donnerstag<br />
                  <input type="checkbox" name="tage" value="Freitag"> Freitag<br />
                  <input type="checkbox" name="tage" value="Samstag"> Samstag<br />
                  <input type="checkbox" name="tage" value="Sonntag"> Sonntag<br />
                </body>
              </html>

              Kommentar


              • #8
                Nenn die Funktion um, so dass sie nicht mehr den gleichen Namen wie das Eingabefeld hat, dann funktioniert es. Vermutlich haben sich hier zwei Scopes ueberschnitten, der globale in dem du die Funktion definiert hast, und der kontext-behaftete aus dem Eingabefeld.

                Siehe:
                Code:
                <script>function uniquestring123() { alert("meep"); }</script>
                
                <input name="uniquestring123" onclick="alert(uniquestring123)" />
                "Mein Name ist Lohse, ich kaufe hier ein."

                Kommentar

                Lädt...
                X