Herr Ernst: ALLE Werte einer select-box via button auswählen

hallo forum,

in einem formular sind viele auswahllisten (select) mit multipler auswahlmöglichkeit.

es wäre super, wenn man mit nur einer schaltfläche ALLE WERTE JEDER AUSWAHLLISTE selectieren kann.

man klickt also auf den button und im ersten select-feld werden alle werte markiert, im zweiten genauso etc.

ihr profis habt da sicher schon erfahrung...!?

vielen dank für eure tipps!

  1. Tach,

    es wäre super, wenn man mit nur einer schaltfläche ALLE WERTE JEDER AUSWAHLLISTE selectieren kann.
    man klickt also auf den button und im ersten select-feld werden alle werte markiert, im zweiten genauso etc.

    dazu benutzt man einen passenden Event-Handler und ändert die checked-Eigenschaft der möglicherweise per getElementsByTagName() ausgewählten Formularelemente, weiterhin ist die Benutzung einer Schleife zu empfehlen.

    mfg
    Woodfighter

    1. dazu benutzt man einen passenden Event-Handler und ändert die checked-Eigenschaft der möglicherweise per getElementsByTagName() ausgewählten Formularelemente, weiterhin ist die Benutzung einer Schleife zu empfehlen.

      mfg
      Woodfighter

      tach Woodfighter,

      eventhandler = OK!
      checked-Eigenschaft = OK!
      Schleife = ?
      etwa so:
      function default_all (Quelle) {
       var Quelle2 = document.getElementsByName(Quelle)[0];
       for (var i = 0; i < Quelle2.length; i++)
       {
        Quelle2[i].checked = true
       }

      }
      wobei heir ein fehler auftritt: 'length' ist null oder kein objekt

      ein klitzekleiner tipp....

      1. Tach,

        erstmal, bitte kein TOFU, habe schon gefrühstückt.

        var Quelle2 = document.getElementsByName(Quelle)[0];

        Hier referenzierst du ein Element.

        for (var i = 0; i < Quelle2.length; i++)

        Hier versuchst du die Eigenschaft eines Arrays zu nutzen.

        mfg
        Woodfighter

        1. Tach,

          erstmal, bitte kein TOFU, habe schon gefrühstückt.

          hm... komische art ein post zu verfassen...was soll´s

          var Quelle2 = document.getElementsByName(Quelle)[0];

          Hier referenzierst du ein Element.

          for (var i = 0; i < Quelle2.length; i++)

          Hier versuchst du die Eigenschaft eines Arrays zu nutzen.

          ok. wie wäre es eigentlich richti. meinen aufrgeführten fehler habe ich übrigens gefunden. lag am parameter der übergeben wurde.

          nun gibts zwar kein fehler, aber es passiert auch nix ;-(

          wie würdest du die schleife denn definieren?

          1. Tach,

            hm... komische art ein post zu verfassen...was soll´s

            ich würde sagen, es ist die einzige vernünftige Art, sowohl für E-Mail, Newsgroups und Foren; in Boards wird selten überhaupt zitiert, da macht es dann keinen Unterschied.

            mfg
            Woodfighter

        2. So funktioniert es:
          function default_all (Quelle) {
           var Quelle2 = document.getElementsByName(Quelle)[0];
           for (var i = 0; i < Quelle2.length; i++)
           {
            Quelle2.options[i].selected = true
           }

          }

          nun habe ich jedoch das problem, dass ich gerne alle angezeigten select-felder markieren möchte...

          1. Tach,

            var Quelle2 = document.getElementsByName(Quelle)[0];
            for (var i = 0; i < Quelle2.length; i++)

            du wählst weiterhin nur ein Element aus, statt die Collection zu nutzen, lass einfach bei der Definition von Quelle2 das "[0]" weg, dann ist Quelle2.length auch größer als 0

            Quelle2.options[i].selected = true

            Das kann nicht funktionieren, da Quelle2 ja bereits die option-Elemente sind.

            mfg
            Woodfighter

            1. Tach,

              var Quelle2 = document.getElementsByName(Quelle)[0];
              for (var i = 0; i < Quelle2.length; i++)

              du wählst weiterhin nur ein Element aus, statt die Collection zu nutzen, lass einfach bei der Definition von Quelle2 das "[0]" weg, dann ist Quelle2.length auch größer als 0

              OK funktioniert!

              Quelle2.options[i].selected = true

              Das kann nicht funktionieren, da Quelle2 ja bereits die option-Elemente sind.

              seltsam, bei mir geht das. evtl. weil ich nur den string-NAMEN des formelements als parameter übergebe!?

              kleine frage noch am rande:
              im formular sind ca. 15 solcher select-listen. wie kann ich nun ALLE select-listen auswählen um dann alle werte auszuwählen. bisher geht es ja nur mit einem select-feld...

              danke für deine hilfe!

              1. Tach,

                seltsam, bei mir geht das. evtl. weil ich nur den string-NAMEN des formelements als parameter übergebe!?

                war auch ein wenig Quatsch, zuwenig Kaffee heute.

                im formular sind ca. 15 solcher select-listen. wie kann ich nun ALLE select-listen auswählen um dann alle werte auszuwählen. bisher geht es ja nur mit einem select-feld...

                Naja jetzt machst du eine zweite Schleife außenrum in der du alle select-Elemente durchgehst.

                mfg
                Woodfighter

                1. Naja jetzt machst du eine zweite Schleife außenrum in der du alle select-Elemente durchgehst.

                  ok soweit verstanden... NUR

                  die zweite schleife würde ich so machen:
                  for (var a = 0; a < ANZAHL_DER_SELECT_ELEMENTE; a++)

                  nun muss ich die Anzahl der select elemente im formular herausbekommen.

                  hast du da evtl. noch einen tipp/beispiel?

                  1. Tach,

                    nun muss ich die Anzahl der select elemente im formular herausbekommen.

                    document.getElementsByTagName("select").length

                    mfg
                    Woodfighter