Klaus: Mehrfachauswahl von checkboxen begrenzen

Hallo!

Mein Anliegen ist folgendes: Ich bastle gerade ein Formular in dem 15 Checkboxes aufgeführt sind. Es sollten jedoch nur insgesamt 5 auswählbar sein!? Dazu suche ich eine Abfragefunktion. Kann mir jemand dazu bitte einen Tip geben?

Vielen Dank im Voraus!!!

Gruß Klaus

  1. Hi,

    Kann mir jemand dazu bitte einen Tip geben?

    es gibt:

    • onChange-Handler,
    • eine checked-Eigenschaft bei Radiobutton-Objekten, und
    • Schleifen.

    Was brauchst Du mehr? :-)

    Cheatah

      • onChange-Handler,
      • eine checked-Eigenschaft bei Radiobutton-Objekten, und
      • Schleifen.

      Hi Cheatah,

      Gute Frage, bin noch relativ unwissend auf dem Gebiet. Vielleicht habe ich mich auch nur undeutlich ausgedrückt. Also: Es soll während der Auswahl und beim Erreichen der möglichen fünf Checkboxen eine Meldung kommen, wie z.B. daß keine weitere Auswahl mehr möglich sei oder von den 15 Auswahlmöglichkeiten nur 5 zur Auswahl stehen...

      eine checked-Eigenschaft halte ich deshalb für unpassend. wie funktiert es aber mit einem onChange-Handler (dachte man könne diese Funktion nur für Eingabefelder und Auswahllisten verwenden??).
      Wie funktioniert in diesem Fall eine Schleife?
      Gibts da nix mit OnClick??

      Klaus

      1. Hallo

        Gute Frage, bin noch relativ unwissend auf dem Gebiet. Vielleicht habe ich mich auch nur undeutlich ausgedrückt. Also: Es soll während der Auswahl und beim Erreichen der möglichen fünf Checkboxen eine Meldung kommen, wie z.B. daß keine weitere Auswahl mehr möglich sei oder von den 15 Auswahlmöglichkeiten nur 5 zur Auswahl stehen...

        Nuja, Du hast einen onchange-Handler in jedem checkbox-tag, der mit einer Funktion prueft ob besagte checkbox nach dem click nun checked ist oder nicht. Wenn ja, wird eine Variable (die zu Anfang auf 0 gesetzt ist) um jeweils eins hochgezaehlt, wenn nicht, wird 1 abgezogen von der Variable. Wenn die Variable schliesslich gleich  4 ist, kommt der alert.

        Gruss, Mel

      2. Gute Frage, bin noch relativ unwissend auf dem Gebiet. Vielleicht habe ich mich auch nur undeutlich ausgedrückt. Also: Es soll während der Auswahl und beim Erreichen der möglichen fünf Checkboxen eine Meldung kommen, wie z.B. daß keine weitere Auswahl mehr möglich sei oder von den 15 Auswahlmöglichkeiten nur 5 zur Auswahl stehen...

        eine checked-Eigenschaft halte ich deshalb für unpassend. wie funktiert es aber mit einem onChange-Handler (dachte man könne diese Funktion nur für Eingabefelder und Auswahllisten verwenden??).
        Wie funktioniert in diesem Fall eine Schleife?
        Gibts da nix mit OnClick??

        Klaus

        Na dann mach doch einfach einen JavaScript-Alert rein.
        Wie das geht wirst Du ja wohl wissen...

        Steht aaaaaaaaaaaaaaaaalles in der Doku!!! :o))

        Gruss,
        CS

      3. Hi,

        Gute Frage, bin noch relativ unwissend auf dem Gebiet.

        genau deswegen habe ich Dir nicht mehr gesagt. Nur indem Du lernst, kannst Du das Unwissen abstreifen - und meiner Ansicht nach kann man nicht besser lernen, als wenn man das Problem selbst löst.

        Vielleicht habe ich mich auch nur undeutlich ausgedrückt.

        Nein, ich habe Dich sehr genau verstanden.

        eine checked-Eigenschaft halte ich deshalb für unpassend.

        Wie willst Du ohne sie ermitteln, wie viele Boxen angewählt sind? :-)

        wie funktiert es aber mit einem onChange-Handler (dachte man könne diese Funktion nur für Eingabefelder und Auswahllisten verwenden??).

        onChange ist für <input> gültig, und auch Radiobuttons sind <input>.

        Gibts da nix mit OnClick??

        Ja. Das ist aber kein onCheck, und reagiert in Deinem Fall nicht wesentlich anders als onChange. Freie Auswahl, würde ich sagen.

        Cheatah

        P.S.: Die Lösung von CaptainSolo funktioniert nicht, wie ich spontan sehe. Wenn Du klug bist, beachtest Du sie nicht weiter - auch wenn er es (natürlich) gut gemeint hat.

        1. Hallo

          Gibts da nix mit OnClick??
          Ja. Das ist aber kein onCheck, und reagiert in Deinem Fall nicht wesentlich anders als onChange. Freie Auswahl, würde ich sagen.

          Nicht ganz. onChange ist besser, da man checkboxen auch ohne zu klicken auswählen kann.

          Grüße

          Daniel

          1. Hi,

            Nicht ganz. onChange ist besser, da man checkboxen auch ohne zu klicken auswählen kann.

            Du hast recht. Weißt Du zufällig, ob onChange sofort reagiert? Bei <select> beispielsweise ist dem nicht zwingend so.

            Cheatah

            1. Hi Cheatah

              Das ist vermutlich Browserabhängig. Es könnte auch erst reagieren, wenn die Checkbox nicht mehr den Fokus hat.
              So wie es etwa bei Textfeldern der Fall ist.

              Grüße

              Daniel

              1. Hi,

                Das ist vermutlich Browserabhängig.

                das tippe ich auch. Immerhin macht es bei Checkboxen und Radiobuttons wenig Sinn, auf eventuelle weitere Änderungen zu warten, bevor das Event feuern darf... bei anderen Feldtypen würde es "Großbrände" geben :-)

                Man könnte natürlich auch die gleichen Funktionen in multiplen Handlern (onClick, onKeyPressed...) ausführen lassen. Das wäre dann zwar ein Maschinengewehrfeuer, aber es lässt sich damit recht genau zielen.

                Cheatah

    1. Hi!

      -----

      <input type="hidden" name="XYZ" value="0">

      • onChange-Handler,

      onChange="checkBox()"

      Function checkBoxName()
      {
        if(document.form.formname["checkboxname"].checked==true)
        {
          document.form.formname.XYZ.value=document.form.formname.XYZ.value + 1;
        }
        else
        {
          document.form.formname.XYZ.value=document.form.formname.XYZ.value - 1;
        }

      if(document.form.formname.XYZ.value==6)
        {
          document.form.formname["checkboxname"].checked==false;
        }
      }

      -----

      So sollte es gehen...
      Ist natürlich nicht ganz ausgereift, sollte Dich aber auf die Lösung bringen. :o))

      Gruss,
      CS

    2. Hi Cheatah,

      • onChange-Handler,
      • eine checked-Eigenschaft bei Radiobutton-Objekten, und
      • Schleifen.

      Muß es denn eine Schleife sein?

      Reicht ein korrekt initialisiertes und pro Event inkrementell gepflegtes skalares Gedächtnis nicht auch?

      Viele Grüße
            Michael

      1. Hi,

        Reicht ein korrekt initialisiertes und pro Event inkrementell gepflegtes skalares Gedächtnis nicht auch?

        sicher, wenn es sauber programmiert ist. Du kannst meine drei Punkte gerne als Sammelsurium für diverse Möglichkeiten ansehen :-)

        Cheatah

        1. Hi Cheatah.

          Du kannst meine drei Punkte gerne als Sammelsurium
          für diverse Möglichkeiten ansehen :-)

          ich meinte doch nur ... wo ich doch von Dir gewohnt bin, gleich die performanteste Lösung vorgeschlagen zu bekommen ... ;-)

          Viele Grüße
                Michael

          1. Hi,

            ich meinte doch nur ... wo ich doch von Dir gewohnt bin, gleich die performanteste Lösung vorgeschlagen zu bekommen ... ;-)

            *seufz* es scheint zu stimmen, was ein Kollege von mir neulich sagte - ich verwöhne die Leute... :-)

            Cheatah