checkboxen zählen ohne form tag?

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

  • checkboxen zählen ohne form tag?

    wie kann ich die checkboxen in meinem div "testdiv" zählen (ist eine dyn. anzahl, daher kann ich es net per button übertragen ->href)?

    da man ja form tags net verschachteln kann und ich habe in meinem großen div schon mehrere form bereiche (pro tabellenzeile einen)!

    daher brauche ich eine alternative lösung.

    jemand eine idee?

  • #2
    Re: checkboxen zählen ohne form tag?

    Original geschrieben von Gamer20
    wie kann ich die checkboxen in meinem div "testdiv" zählen
    So, wie sonst auch.
    daher brauche ich eine alternative lösung.
    Für was?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      na das hat mir jetzt net geholfen!

      hier der PHP Code:

      Code:
      <?
      echo"
      <div id='testdiv'>
      <input type='checkbox' name='kasten[]' value='1'> 1
      <input type='checkbox' name='kasten[]' value='2'> 2
      <input type='checkbox' name='kasten[]' value='3'> 3
      <input type='checkbox' name='kasten[]' value='4'> 4
      <input type='checkbox' name='kasten[]' value='5'> 5
      </div>
      
      <input type='button' name='button' value='Submit' onclick='javascript:probe()'>";
      ?>
      Zuletzt geändert von Gamer20; 05.04.2009, 20:08.

      Kommentar


      • #4
        1. ist das kein PHP-Code.
        2. und jetzt?

        Kommentar


        • #5
          Original geschrieben von Gamer20
          na das hat mir jetzt net geholfen!
          Habe ich auch nicht erwartet.
          hier der PHP Code:
          Uninteressant.

          Beschreibe dein Problem.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Code:
            <script type="text/javascript" language="javascript">
            function get(obj)
            {
            var Zaehler=1;
            for (i=0; i<obj.childNodes.length; i++)
            {
            if (obj.childNodes[i].type == 'checkbox')
            {
            Anzahl=Zaehler;
            Zaehler=Zaehler+1;
            }
            }
            alert(Anzahl);
            }
            </script>
            </head>
            <?
            echo"
            <div id='testdiv'>
            <input type='checkbox' name='kasten[]' value='1'> 1
            <input type='checkbox' name='kasten[]' value='2'> 2
            <input type='checkbox' name='kasten[]' value='3'> 3
            <input type='checkbox' name='kasten[]' value='4'> 4
            <input type='checkbox' name='kasten[]' value='5'> 5
            <input type='button' name='button' value='Submit' onclick='javascript:get(this.parentNode)'>
            </div>";
            ?>
            so funktionierts (ohne <form tag>, nur ich finde es ist etwas umständlich.

            am liebsten wäre es mir, wenn ich es ohne this.parentNode bzw. obj machen könnte onclick='javascript:get()

            und

            eine if abfrage weniger hätte, also direkt in der schleife die länge bzw. anzahl der checkboxen angeben könnte:

            for (i=0; i<checkboxen.length; i++)

            denn dann würde ich mir

            if (obj.childNodes[i].type == 'checkbox')

            diese if abfrage sparen können.

            Kommentar


            • #7
              Original geschrieben von Gamer20
              am liebsten wäre es mir, wenn ich es ohne this.parentNode bzw. obj machen könnte onclick='javascript:get()
              Zum parentNode hochsteigen kannst du auch innerhalb deiner Funktion, wenn dir das lieber ist.
              Die Referenz auf das Objekt musst du aber nach wie vor übergeben, wenn du den Eventhandler inline als HTML-Attribut notierst. (Das wäre anders, wenn du ihn per JavaScript dynamisch hinzufügen würdest, dann hättest du über this Zugriff auf das Element.)


              eine if abfrage weniger hätte, also direkt in der schleife die länge bzw. anzahl der checkboxen angeben könnte:

              for (i=0; i<checkboxen.length; i++)

              denn dann würde ich mir

              if (obj.childNodes[i].type == 'checkbox')

              diese if abfrage sparen können.
              Das kannst du, wenn du es über ein Formular machst, genauso wenig - denn auch das Formular kann neben Checkboxen auch noch andere Elemente enthalten - bzw. nur dann, wenn alle Checkboxen den gleichen Namen haben.

              Wenn du das als Voraussetzung definieren würdest (womit wir wieder beim Thema vollständige Problembeschreibung wären, denn zu diesem Umstand hast du kein Wort verloren!) - dann kannst du natürlich direkt über alle elements unterhalb des forms laufen, und auch direkt deren Anzahl über die length-Eigenschaft abfragen.
              Und das ginge bei dieser Methode natürlich analog, wenn du getElementsByTagName bzw. getElementsByName verwendest.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                ja da hatten wir wohl den gleichen gedanken mit tagname:

                Code:
                function Checkboxen()
                {
                var Anzahl = document.getElementsByTagName('input');
                
                Anzahl=Anzahl.length;
                alert(Anzahl);
                }
                ich versuchs nochmal mit ByName um nur die Checkboxen mit dem Namen "Kasten" zu zählen, müßte aber auch klappen.

                aber sonst klappts soweit!

                aber das ich net auf document.getElementsByTagName gekomm bin, nervt mich, nagut ich habe immer nur mit ...ByID gearbeitet.

                man hat eben manchmal ein brett vorm kopf!

                danke für den tip mit den 2 Befehlen (sollte die öfters mal nutzen, dann hät ich die net übersehen)!
                Zuletzt geändert von Gamer20; 06.04.2009, 08:12.

                Kommentar

                Lädt...
                X