heart: Nochmal Formular-Überprüfung

Hallo,

ich generiere mit folgender while-Schleife diverse input-Felder:

echo "<input type="checkbox" name="startelf[]" value="".$ausgabespieler['ID']."" />";

Nun möchte ich vor dem Versenden überprüfen, ob genau 11 Haken davon gesetzt worden sind.

Ich habe folgendes (erfolglos) versucht:

if ( (a.startelf.length < 11) && (a.startelf.length > 11){
    error+="- Es wurden weniger/mehr als 11 Haken für die Startelf gesetzt!\n";
    res = false;}

(...habe auch "...a.startelf[].lenght..." versucht!)

DANKE

--
Gruss,
Heart
  1. hi,

    echo "<input type="checkbox" name="startelf[]" value="".$ausgabespieler['ID']."" />";

    Nun möchte ich vor dem Versenden überprüfen, ob genau 11 Haken davon gesetzt worden sind.

    Ich habe folgendes (erfolglos) versucht:

    if ( (a.startelf.length < 11) && (a.startelf.length > 11){

    selbst unter der voraussetzung, dass a eine korrekte referenz auf dein formular darstellen würde - du hast kein(e) element(e) mit dem namen "startelf" in deinem formular.

    und selbst wenn dies ihr name wäre, würde length - was es unterhalb von elementen eines bestimmten namens m.E. auch wiederum nicht gibt, sondern nur allgemein unterhalb des elements-objektes - auch noch nichts darüber aussagen, wie viele angekreuzt und wie viele nicht angekreuzt sind.

    (...habe auch "...a.startelf[].lenght..." versucht!)

    beschäftige dich mal mit elements: Allgemeines zur Verwendung um herauszufinden, wie man exotisch benannte elemente richtig anspricht.

    und anschließend musst du diese elemente in einer schleife durchlaufen und dabei mitzählen, welche angekreuzt sind, und anschließend diese anzahl abfragen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Könnt Ihr mir bitte ein wenig mit Code-Beispielen zur Hand gehen bitte....

      Ich hab nun folgendes versucht (klappt so leider noch nicht):

      ....
      var error="";
      res = true;
      a = document.form1;

      var anzahl="0";
      for(i = 0; i < 30; i++)
      {
      if(a.startelf[i].checked == true)
      {
        anzahl++;
      }
      }

      if ( (anzahl < 11) && (anzahl > 11) {
          error+="Es wurden weniger/mehr als 11 Haken für die Startelf gesetzt!\n";
          res = false;}
      ....

      1. heart,

        if(a.startelf[i].checked == true)

        Stimmt es, dass es sein muss? → Muss das sein?
        Der Vergleich eines Booleschen Ausdruck gegen true ist überflüssig.

        if(a.startelf[i].checked)

        if ( (anzahl < 11) && (anzahl > 11)

        Für welche Belegungen für anzahl werden wohl beide Bedingungen gleichzeitig erfüllt?

        Gunnar

        --
        “I got my finger on the trigger / But I don’t know who to trust” (Bruce Springsteen, Devils and Dust)
        1. if ( (anzahl < 11) && (anzahl > 11)

          Für welche Belegungen für anzahl werden wohl beide Bedingungen gleichzeitig erfüllt?

          Sorry, dass && muss natürlich || sein. Aber der Fehler muss wo anders liegen, da es mit || auch nicht funktioniert!?

          1. Hi,

            if ( (anzahl < 11) && (anzahl > 11)
            Sorry, dass && muss natürlich || sein. Aber der Fehler muss wo anders liegen, da es mit || auch nicht funktioniert!?

            wie wäre es mit:

            if (anzahl <> 11)
            bzw.
            if (anzahl != 11)

            nur mal so? oder geht das bei JS nicht?

            MfG

      2. hi,

        if(a.startelf[i].checked == true)

        würde mich doch stark wundern, wenn a.startelf[i] eine gültige referenz auf die checkboxen darstellen sollte ...

        hast du dich mit dem von mir in der letzten antwort verlinkten artikel jetzt mal beschäftigt?
        sieht für mich eher weniger danach aus.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hi,

    warum "a.startelf" ???

    Du musst für jede einzelne Checkbox prüfen, ob Sie selected ist oder nicht.

    Gruss,
    Turtle