Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] nicht alle werden gechecked

Einklappen

Neue Werbung 2019

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

  • [Erledigt] nicht alle werden gechecked

    Hallo,

    ich würde gerne alle checkboxen nach funktionsstart auf true setzen. leider wird nur die erste berücksichtigt, der rest nicht. hier erstmal mein code:

    Code:
    <script type="text/javascript">
    	function alle () {
    	  document.getElementById("checkbox").checked = true;
    	}
    </script>
    <form name="form" action="">
    	<input type="checkbox" id="checkbox" name="1" >
    	<input type="checkbox" id="checkbox" name="2" >
    	<input type="checkbox" id="checkbox" name="3" >
    	<input type="checkbox" id="checkbox" name="4" ><br>
    	<div type="button" onclick="alle()">alle</div>
    </form>
    Ich muss in meinem fall mit ids arbeiten, da name bereits von php verwendet wird und die id der mail beinhaltet. also immer verschieden ist. (name="$n" > 231, 268, 310, ...). Aber wen JS auch das hinbekommt, zum beispiel mit einer schleife in einer funktion, würd ich auch name nutzen. zum beispiel sowas:
    for( var i = 0;i<1000;i++){
    document.form.+i+.checked=true;} oder so xD

    aber erstmal die id, warum werden nicht alle gechecked sondern nur die erste? danke schomal.

  • #2
    Eine ID heißt deshalb ID, weil sie eine IDentifikation erlaubt, das heißt auch, dass eine ID auf einer Seite einmalig sein muss und nur bei einem Element vorkommen kann.
    Was du suchst, ist getElementsByTagname('input') mit der Prüfung, ob das Attribut type den Wert "checkbox" hat. Nicht getElementById().
    Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

    Kommentar


    • #3
      ... (Codeschnipsel rauseditiert) sorry, habs mir überlegt, nicht der Sinn des Forums ...
      [URL]http://hallophp.de[/URL]

      Kommentar


      • #4
        Zitat von alex9787 Beitrag anzeigen
        Ich muss in meinem fall mit ids arbeiten
        Du darfst aber nicht so mit IDs arbeiten, weil HTML das schlicht und einfach nicht erlaubt - eine ID muss dokumentweit eindeutig sein.

        aber erstmal die id, warum werden nicht alle gechecked sondern nur die erste?
        Wegen der nötigen Eindeutigkeit einer ID ist auch die Methode getElementById natürlich darauf ausgelegt, genau ein Element zurück zu liefern.

        Wenn du mit mehreren Elementen etwas machen willst - dann brauchst du eine Schleife.


        Gehe bitte folgendermaßen vor:
        1. Lerne Grundlagen von HTML
        2. Lerne Grundlagen von JavaScript
        3. (optional) Frage hier wieder nach, wenn du noch weitere Probleme damit hast - aber erst dann, wenn du Schritt 1. und 2. abgearbeitet hast!
        [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

        Kommentar


        • #5
          Du nimmst auch kein Blatt vor den Mund, oder?
          Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

          Kommentar


          • #6
            Wo er Recht hat...
            [URL]http://hallophp.de[/URL]

            Kommentar


            • #7
              Hey super danke dir. hab mich ma in js eingelesen aber getelementbytagname war mir noch unbekannt =)

              ich musste nur noch ne schleife einbinden und so werden alle nun gechecked =)
              Code:
              function alle () {
              		for(var i = 0; i<100;i++){
              	  document.getElementsByTagName("input")[i].checked = true;
              	  }
              	  
              	}
              danke dir.

              Kommentar


              • #8
                aber getelementbytagname war mir noch unbekannt
                getElementsByTagname()! Man beachte den Plural (im Gegensatz zu getElementById()).
                Im Übrigen wäre es sinnvoller, die Funktion einmal vor der Schleife aufzurufen anstatt zig mal innerhalb. Unnötiger Overhead, außerdem kannst du damit gleich die Menge an Schleifendurchläufen festlegen.
                Code:
                function alle () {
                    var checkboxes = document.getElementsByTagName("input");
                    for(var i = 0; i < checkboxes.length; i++){
                        checkboxes[i].checked = true;
                    }
                }
                Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                Kommentar


                • #9
                  Wobei die Funktion noch praktischer wäre, würdest du die Checkboxen vorher zählen, sonst musst du bei einer Wiederverwendung des Scripts jedesmal die Anzahl der Schleifendurchläufe ändern. Bei einer Anwendung, bei der sich die Anzahl der Checkboxen dynamisch ändern kann, müsstest du mit diesem Schnipsel bereits ganz aufgeben.

                  Gruß

                  [edit] Hey Manko, da hast du jetzt aber drübereditiert
                  [URL]http://hallophp.de[/URL]

                  Kommentar


                  • #10
                    [OT]
                    Zitat von Manko10 Beitrag anzeigen
                    Du nimmst auch kein Blatt vor den Mund, oder?
                    In Bezug auf was hätte ich das tun sollen ...?

                    Das Grundlagenwissen über HTML fehlt, ist aus der Problembeschreibung offensichtlich.

                    Und dass es absolut unsinnig ist, auf defektem HTML überhaupt mit JavaScript arbeiten zu wollen, ist auch ein verbreiteter Erfahrungswert.

                    Deshalb kann die Empfehlung hier nur lauten: Lerne Grundlagen, und zwar in der angegebenen Reihenfolge.

                    Und das bringe ich lieber deutlich zum Ausdruck, als mit so viel Zucker verkleistert, dass der Frager dann doch wieder nur nach einer Reparatur seines defekten Codes zu fragen geneigt ist - selbst wenn wir die für ihn vornehmen, hilft ihm das nämlich auf Dauer nicht weiter, das nächste Problem gleicher Bauart kommt dann bestimmt.


                    Bei sämtlichen clientseitigen Problemen gilt: Immer zuerst validen Code (HTML/CSS) herstellen, bevor man überhaupt mit der Problemanalyse weiter macht.
                    [/OT]
                    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                    Kommentar


                    • #11
                      @Asipak: Schneller.

                      @ChrisB: das war jetzt auf den (leider zu recht) grundgenervten Allgemein-Tenor deiner Beiträge heute gemünzt und gar nicht als negative Kritik gemeint.
                      Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                      Kommentar


                      • #12
                        hey chris...danke für den hinweis, ich fang mal an html zu lernen xDxD^^

                        kurze frage, welche projekte hast du momentan am laufen die einnahmen bringen??

                        Kommentar


                        • #13
                          ach egal, schon ok =) no time. disskutiert ihr mal weiter. danke trotzdem. bis zum nächten mal ^^

                          Kommentar


                          • #14
                            Dann noch fix den Danke!
                            Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                            Kommentar


                            • #15
                              Zitat von alex9787 Beitrag anzeigen
                              hey chris...danke für den hinweis, ich fang mal an html zu lernen xDxD^^
                              Soll das jetzt Sarkasmus sein?

                              Den kannst du dir absolut nicht leisten, so lange du noch solche eklatanten Fehler in deinen Code einbaust.
                              Und dass du diese Fehler dann auch noch mit „ich muss das so machen“ rechtfertigen willst, zeigt auch noch, dass deine Programmierkünste noch ebenso bescheiden sind.

                              Also, so lange bitte Ball mal schön flach halten.
                              [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                              Kommentar

                              Lädt...
                              X