chullain: 2 Events in einem Tag

Hallo Alle zusammen,

ich würde gerne 2 Javascript-Events in einem Tag unterbringen. Der Hintergrund ist folgender. Ich habe eine Checkbox und möchte beim Anklicken der Checkbox ein Befehl ausführen und wenn diese sich ändert, dann auch. Im Konkreten...ich habe ne checkbox-Hierarchie, wenn ich das oberste anklicke, sollen die untergeordneten auch angeklickt werden, dafür wäre dann das erst Event, hier dann onclick(...), beim Ändern der Checkboxen, soll dein ein kleiner eintrag in eine Datenbank geschrieben werden, das wäre dann für die unteren Checkboxen gedacht, die ja nicht angeklickt werden...aber bei einer Änderung einen Eintrag bekommen sollten...

ich habe mir das so vorgestellt, aber das klappt nicht:

<input id="a1" type=Checkbox name="a1" value="33,'31.10.2007'" onClick=fk_check(1) onchange=fk_comment("33,'31.10.2007')>

...hat jemand ne Idee, warum das nicht klappt, oder vll. ne andere Lösung?

Gruss,
chullain

  1. <input id="a1" type=Checkbox name="a1" value="33,'31.10.2007'" onClick=fk_check(1) onchange=fk_comment("33,'31.10.2007')>

    ...hat jemand ne Idee, warum das nicht klappt, oder vll. ne andere Lösung?

    stichwort "semikolon"

    deine attribute solltes du in anführungszeichen setzen (alle) und die eventhandler (onclick, onchange) immer klein schreiben

  2. Hallo

    das klappt nicht:

    <input id="a1" type=Checkbox name="a1" value="33,'31.10.2007'" onClick=fk_check(1) onchange=fk_comment("33,'31.10.2007')>

    Kann ja auch gar nicht. Richtig sieht das so aus:

    <input id="a1" type="checkbox" name="a1" value="33,'31.10.2007'" onClick="fk_check(1);" onchange="fk_comment(33,'31.10.2007');" />

    Was habe ich verändert?

    • Anführungszeichen durchgängig:
        - doppelte Anführungszeichen (") für tag-Attribute,
        - einfache Anführungszeichen (') für JavaScript-Strings
          (ggf. Escapen nicht vergessen)

    • Semikolon nach jeder Zeile JavaScript

    • Wenn Du nicht gerade HTML4 schreibst (nimm' lieber XHTML), solltest Du den input-Tag auch wieder schließen.

    Insbesondere das '"' hinter der Klammer beim fk_comment
    ist echt super daneben und verdient eine goldene Zitrone :-)

    Gruß, LX

    1. Hallo,

      vielen Dank nochmal. Dieser Patzer verdient mehr als eine goldene Zitrone. :-) Hab es dann auch angepasst, jetzt ist nur das Problem, dass die funktion, die ich mit onchange aufrufe, erst dann aufgerufen wird, wenn ich das Objekt verlasse, sprich, nach dem Klick auf die Checkbox, klicke ich wo anders rein. Gibts da nicht was, womit das sofort funktioniert, wenn ich auf die Checkbox klicke?Also Event...

      Gruss,
      chullain

      1. Yerf!

        wenn ich auf die Checkbox klicke?Also Event...

        Beim klicken... also sozusagen onclick?

        Gruß,

        Harlequin

        --
        <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
        1. Das Problem ist ja, dass ich so eine Checkbox-Hierarchie habe und wenn das oberste angeklickt wird, dann funktioniert das ja auch mit oncklick, aber die untergeordneten, die ja auch verändert werden, die reagieren ja nicht auf onclick und onchange, da erfolgt die reaktion erst dann, wenn ich mit dem maus wo anders reinklicke...

          Gruss,
          chullain

          1. Yerf!

            Das Problem ist ja, dass ich so eine Checkbox-Hierarchie habe und wenn das oberste angeklickt wird, dann funktioniert das ja auch mit oncklick, aber die untergeordneten, die ja auch verändert werden, die reagieren ja nicht auf onclick und onchange, da erfolgt die reaktion erst dann, wenn ich mit dem maus wo anders reinklicke...

            Ah so, die anderen sollen reagieren, wenn sie aus dem Eventhandler der ersten Box heraus mit geändert werden?

            Das geht nicht so ohne weiteres über Eventhandler, die reagieren nur auf Benutzeraktionen. Allerdings weis dein Script doch ganz genau, wann es welche Felder ändert. Damit kann man an genau diesen Stellen die Eventhandler manuell starten.

            Bsp:

              
            var feld = document.getElementById('BeispielInput');  
            feld.value = "neuer Wert";  
            feld.onchange();  
            
            

            Gruß,

            Harlequin

            --
            <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->