Checkboxen abfrage

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Checkboxen abfrage

    hallo, ich habe da ein problem. ich hab ein formular mit 4 checkboxen. ich möchte aber das nur max 2 angewählt wwerden können. wenn jemand das dritte anwählt soll ein hinweiß erscheinen wo draufsteht, das man nur zwei auswählen darf. ist das möglich? wenn ja kann mir jemand sagen wie ich das machen muss. ich kenne mich mit java nicht aus, denke aber das man es damit machen muss.

    holger
  • Nicht Java, sondern JavaScript:

    Quellcode

    1. var cb= new Array('one', 'two', 'three');
    2. function assert_checkbox(cb, max) {
    3. var i, tot = 0;
    4. for (i=0; i<cb.length; i++)
    5. if (document.getElementById(cb[i]).checked)
    6. tot+=1;
    7. return (tot<=max);
    8. }


    Quellcode

    1. <form>
    2. <input type="checkbox" name="one" id="one" onclick="return assert_checkbox(cb, 2)" />
    3. <input type="checkbox" name="two" id="two" onclick="return assert_checkbox(cb, 2)" />
    4. <input type="checkbox" name="three" id="three" onclick="return assert_checkbox(cb, 2)" />
    5. </form>
  • Moin
    Persönlich würde ich eine etwas abweichende Methode verwenden. Da diese Lösung nicht ganz so dynamisch ist.

    Quellcode

    1. <script type="text/javascript">
    2. var anzahl = 0;
    3. function test(elem){
    4. if(elem.checked){
    5. anzahl++;
    6. }
    7. else{
    8. anzahl--;
    9. }
    10. if(anzahl > 2){
    11. anzahl--;
    12. return false;
    13. }
    14. else{
    15. return true;
    16. }
    17. }
    18. </script>
    Alles anzeigen


    Quellcode

    1. <input type="checkbox" id="box1" onclick="return test(this);"/>
    2. <br />
    3. <input type="checkbox" id="box2" onclick="return test(this);"/>
    4. <br />
    5. <input type="checkbox" id="box3" onclick="return test(this);"/>
    6. <br />
    7. <input type="checkbox" id="box4" onclick="return test(this);"/>


    Wobei man die Funktion auch noch etwas kompakter hin bekommen könnte, aber so versteht man es als Anfänger wenigstens =)

    Axo die 2 würde ich persönlich noch als Konstante realisieren.

    Gruss

    P.S.
    Das id="box1" usw kann man auch weglassen
    Ubuntu Edgy * Kernel 2.6.17 * Gnome 2.16 * Beryl
    2 x Athlon MP 1900 * MSI K7D Master-L * 1024 MB ECC DDR333
    Hercules 9800XT 256 MB Ram * 1x 250 GB IDE
    Wasserkühlung
  • Deine Lösung ist sicher deutlich besser lesbar, wenngleich ich meine auch vorziehen würde, wenn es z.B. darum geht mehrere Gruppen von CheckBoxen zu definieren, die voneinander abhängen. Dann müßte für jede solche Gruppe nur eine globale Variable ähnlich cb defniert werden.

    Zudem bietet meine Lösung die Möglichkeit jeder Checkbox ein anderes Maximum zuzuweisen (2ter Parameter).

    Das Attribut NAME ist meineserachtens zwingend, schließlich möchte man das Formular ja auch verarbeiten. ;)
  • Einigen wir uns darauf, dass beides sein Vor- und Nachteil hat ;)
    Jetzt komm gleich irgendso ein Proll und vereint unsere beiden Lösungen *g
    Ubuntu Edgy * Kernel 2.6.17 * Gnome 2.16 * Beryl
    2 x Athlon MP 1900 * MSI K7D Master-L * 1024 MB ECC DDR333
    Hercules 9800XT 256 MB Ram * 1x 250 GB IDE
    Wasserkühlung