javacls: Bezeichnung einer CheckBox auslesen

Hallo,
ich will die Bezeichnung (links von der CheckBox) auslesen.
<input type="checkbox" name="chk01"> Das ist ein Test<br>

Wie erhalte ich jetzt die Bezeichnung "Das ist ein Test" zurück?

alert (document.Form1.chk01.???);

Steffan

  1. @@javacls:

    ich will die Bezeichnung (links von der CheckBox) auslesen.
    <input type="checkbox" name="chk01"> Das ist ein Test<br>

    Wie erhalte ich jetzt die Bezeichnung "Das ist ein Test" zurück?

    "Das ist ein Test" soll doch sicher ein http://de.selfhtml.org/html/formulare/strukturieren.htm#label@title=Label sein, oder?

    <label><input type="checkbox" name="chk01">Das ist ein Test</label>

    alert(document.Form1.chk01.parentNode.firstChild.nextSibling.nodeValue);

    Live long and prosper,
    Gunnar

    --
    Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
    1. Hallo Gunnar,
      danke für die Hilfe.
      Es funktioniert. Ich habe auf meiner Form mehrere CheckBoxen.
      Es wird aber immer nur das Label von der ersten CheckBox angezeigt,
      obwohl ich z.B. die dritte CheckBox ausgewählt habe.
      Die CheckBox durchlaufe ich mit einer for-Schleife und der Variable i.
      Ich nehme an, dass firstChild geändert werden muss. Aber wie?

      alert(document.Form1.chk01.parentNode.firstChild.nextSibling.nodeValue);

      Steffan

      1. Hallo,

        Es funktioniert. Ich habe auf meiner Form mehrere CheckBoxen.
        Es wird aber immer nur das Label von der ersten CheckBox angezeigt,
        obwohl ich z.B. die dritte CheckBox ausgewählt habe.
        Die CheckBox durchlaufe ich mit einer for-Schleife und der Variable i.
        Ich nehme an, dass firstChild geändert werden muss. Aber wie?

        Du könntest auch alle Labels des Formulars durchlaufen und das for-Attribut prüfen:

        function getLabel(formElement){  
         for (var i = 0; i < formElement.form.elements.length; i++){  
          if (formElement.form.elements[i].htmlFor == formElement.id)  
           return formElement.form.elements[i];  
         }  
         return null;  
        }  
          
        alert(getLabel(form.elements.deinElement).firstChild.nodeValue)
        ~~~;  
          
        mfg. Daniel
        
        -- 
        [Selfcode](http://forum.de.selfhtml.org/cgi-bin/selfcode.pl): [ie:{ fl:( br:> va:) ls:& fo:) rl:( n4:# ss:) de:> js:) mo:} zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%3E+va%3A%29+ls%3A%26+fo%3A%29+rl%3A%28+n4%3A%23+ss%3A%29+de%3A%3E+js%3A%29+mo%3A%7D+zu%3A%7D)
        
        1. @@Daniel Richter:

          Du könntest auch alle Labels des Formulars durchlaufen und das for-Attribut prüfen:

          Wenn es ein solches gibt, was bei meinem Markup nicht der Fall ist. (Muss auch nicht, da 'input' in 'label' liegt.)

          Live long and prosper,
          Gunnar

          --
          Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
          1. [latex]Mae  govannen![/latex]

            Du könntest auch alle Labels des Formulars durchlaufen und das for-Attribut prüfen:
            Wenn es ein solches gibt, was bei meinem Markup nicht der Fall ist. (Muss auch nicht, da 'input' in 'label' liegt.)

            Sollte es aber, da sonst in IE6 die Funktionalität des Labels nicht gegeben ist.

            http://www.kaichen.in/test/labels/

            Cü,

            Kai

            --
            Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
            selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
            1. Hallo,

              da sonst in IE6 die Funktionalität des Labels nicht gegeben ist.

              Würde mich sehr wundern. Im IE 7 gehts zumindest. Kann das nochmal jemand verifizieren, sowohl in 6 als auch in 7?

              Mathias

              1. Hallo molily

                Würde mich sehr wundern. Im IE 7 gehts zumindest. Kann das nochmal jemand verifizieren, sowohl in 6 als auch in 7?

                Im IE 6 gehts nur mit for.

                Auf Wiederlesen
                Detlef

                --
                - Wissen ist gut
                - Können ist besser
                - aber das Beste und Interessanteste ist der Weg dahin!
                1. @@Detlef G.:

                  Im IE 6 gehts nur mit for.

                  Nein, kann ich nicht bestätigen. <label><input type="checkbox" name="chk01">Das ist ein Test</label> funktioniert im IE 6 (Win 2k, falls das eine Rolle spielt).

                  Live long and prosper,
                  Gunnar

                  --
                  Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
                  1. Hallo Gunnar

                    Nein, kann ich nicht bestätigen. <label><input type="checkbox" name="chk01">Das ist ein Test</label> funktioniert im IE 6 (Win 2k, falls das eine Rolle spielt).

                    Seltsam, IE 6.0.2900.2180.xsp_sp2_qfe.070227-2300 unter XP setz das Häkchen nur, wenn die Checkbox direkt angeklickt wird. Mit for-Attribut setzt er es auch beim Anklicken des Textes.

                    Auf Wiederlesen
                    Detlef

                    --
                    - Wissen ist gut
                    - Können ist besser
                    - aber das Beste und Interessanteste ist der Weg dahin!
                    1. @@Detlef G.:

                      Seltsam, IE 6.0.2900.2180.xsp_sp2_qfe.070227-2300 unter XP setz das Häkchen nur, wenn die Checkbox direkt angeklickt wird. Mit for-Attribut setzt er es auch beim Anklicken des Textes.

                      Der IE 6 unter XP ist wahrhaft seltsam:
                      Ich hab auf einer Seite eine Tabelle der Art

                      <table>  
                        <thead>  
                          <tr>  
                            <th>Artikel</th>  
                            <th>Anzahl</th>  
                            <th>Stückpreis</th>  
                            <th>Preis</th>  
                          </tr>  
                        </thead>  
                        <tfoot>  
                          <tr>  
                            <th colspan="3">Gesamtsumme</th>  
                            <td>42 €</td>  
                          </tr>  
                        </tfoot>  
                        <tbody>  
                          <tr>  
                            <th>Artikel 1</th>  
                            <td>3</td>  
                            <td>4 €</td>  
                            <td>12 €</td>  
                          </tr>  
                          <tr>  
                            <th>Artikel 2</th>  
                            <td>5</td>  
                            <td>6 €</td>  
                            <td>30 €</td>  
                          </tr>  
                        </tbody>  
                      </table>
                      

                      Bildschirmansicht OK; aber beim Audrucken fehlt die Angabe des Gesamptpreises "42 €". :-(

                      Hab auch noch keine Idee, wie man den Bug umgehen könnte.

                      Live long and prosper,
                      Gunnar

                      --
                      Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
                    2. [latex]Mae  govannen![/latex]

                      Nein, kann ich nicht bestätigen. <label><input type="checkbox" name="chk01">Das ist ein Test</label> funktioniert im IE 6 (Win 2k, falls das eine Rolle spielt).

                      Seltsam, IE 6.0.2900.2180.xsp_sp2_qfe.070227-2300 unter XP setz das Häkchen nur, wenn die Checkbox direkt angeklickt wird. Mit for-Attribut setzt er es auch beim Anklicken des Textes.

                      Jepp. Gleiches Spiel mit 6.0.2900.5512 (Win XP SP3) Es funktioniert einfach nicht ohne for=

                      Cü,

                      Kai

                      --
                      Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
                      selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
                      1. Hallo Kai

                        Jepp. Gleiches Spiel mit 6.0.2900.5512 (Win XP SP3) Es funktioniert einfach nicht ohne for=

                        Genauso 6.0.2800.1106 unter wine.

                        Auf Wiederlesen
                        Detlef

                        --
                        - Wissen ist gut
                        - Können ist besser
                        - aber das Beste und Interessanteste ist der Weg dahin!
                        1. [latex]Mae  govannen![/latex]

                          Jepp. Gleiches Spiel mit 6.0.2900.5512 (Win XP SP3) Es funktioniert einfach nicht ohne for=

                          Genauso 6.0.2800.1106 unter wine.

                          Danke für die Tests. Aber auf mich hört hier ja niemand ;)

                          Cü,

                          Kai

                          --
                          Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
                          selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
      2. @@javacls:

        Es funktioniert. Ich habe auf meiner Form mehrere CheckBoxen.
        Es wird aber immer nur das Label von der ersten CheckBox angezeigt,
        obwohl ich z.B. die dritte CheckBox ausgewählt habe.

        Die denselben Wert des 'name'-Attribut hat, weil sie zur selben Gruppe gehört?

        Präzisiere mal deine Frage! Was heißt „ich will die Bezeichnung (links von der CheckBox) auslesen“? Wann soll das geschehen?

        Live long and prosper,
        Gunnar

        --
        Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.