Pablos: Text neben Auswahlbox anzeigen

Hi,

ich würde gerne einen Text neben einer Auswahlbox, je nach Auswahl, anzeigen. Wie ist das möglich?
Ist z.B. der erste Eintrag der Box gewählt, soll ein entsprechender Text rechts daneben angezeigt werden, beim zweiten ein anderer, etc.

Danke!

  1. moin Pablos :)

    ich würde gerne einen Text neben einer Auswahlbox, je nach Auswahl, anzeigen. Wie ist das möglich?
    Ist z.B. der erste Eintrag der Box gewählt, soll ein entsprechender Text rechts daneben angezeigt werden, beim zweiten ein anderer, etc.

    was du brauchst ist der onchange-Eventhandler für die Auswahlbox. Wird dieser Event gefeuert kannst du mit nodeValue den Wert deines Textes ändern.

    liebe Grüße aus Berlin
    lina-

    --
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    1. Hey Lina!

      Danke für Deine super schnelle Antwort! ;o)
      Im Beispiel auf SelfHTML wird damit der Text eines Input-Feldes geändert. Wie kann ich das aber machen, dass ich einen ganz normalen Text neben der Auswahlbox anzeige. Dort habe ich ja dann leider kein wirkliches Objekt, wie eine Textbox etc., das ein Attribut "Name" hat.

      Gruss

      1. moin Pablos :)

        Im Beispiel auf SelfHTML wird damit der Text eines Input-Feldes geändert. Wie kann ich das aber machen, dass ich einen ganz normalen Text neben der Auswahlbox anzeige. Dort habe ich ja dann leider kein wirkliches Objekt, wie eine Textbox etc., das ein Attribut "Name" hat.

        Aber vielleicht hast du dann ein solches Konstrukt: <p name="meinText">Es wurde Auswahl 2 getroffen</p>? ;)
        NodeValue gibt es schliesslich nicht nur für Input-Elemente.

        liebe Grüße aus Berlin
        lina-

        --
        Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
        1. Hi!

          Aber vielleicht hast du dann ein solches Konstrukt: <p name="meinText">Es wurde Auswahl 2 getroffen</p>?

          Das wäre aber kein gültiges HTML. "<p>" besitzt kein "name"-Attribut. Das "id"-Attribut lässt sich allerdings für (fast) jedes HTML-Tag angeben.
          Das ist jedoch gar nicht notwenig, wenn du mit onchange-Eventhandler arbeitest, da this innerhalb des Handlers das Objekt darstellt, das das Event ausgelöst hat.

          1. moin jeanlucpicard2 :)

            Aber vielleicht hast du dann ein solches Konstrukt: <p name="meinText">Es wurde Auswahl 2 getroffen</p>?
            Das wäre aber kein gültiges HTML. "<p>" besitzt kein "name"-Attribut. Das "id"-Attribut lässt sich allerdings für (fast) jedes HTML-Tag angeben.
            Das ist jedoch gar nicht notwenig, wenn du mit onchange-Eventhandler arbeitest, da this innerhalb des Handlers das Objekt darstellt, das das Event ausgelöst hat.

            tatsache... da war ich wohl mal wieder zu voreilig. Aber "id" tuts ja genauso ;)

            Allerdings verstehe ich nicht, was du mit "this" meinst... Pablos wollte ja nicht den Wert der Auswahl ändern sondern einen beliebigen Text daneben. Wie sollte "this" da wohl helfen?

            liebe Grüße aus Berlin
            lina-

            --
            Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
            1. Hi!

              Allerdings verstehe ich nicht, was du mit "this" meinst... Pablos wollte ja nicht den Wert der Auswahl ändern sondern einen beliebigen Text daneben. Wie sollte "this" da wohl helfen?

              Ich dachte mir das so: Wenn man über this an das http://de.selfhtml.org/javascript/objekte/node.htm@title=node-Element der Checkbox kommt, kann man mit deren Eigenschaft http://de.selfhtml.org/javascript/objekte/node.htm#next_sibling@title=nextSibling das darauffolgende <label>-Element ansprechen und dessen Eigenschaften nach belieben ändern.

              1. Hey, danke für alle Antworten!

                Also, ich habe jetzt ausgelesen, welcher Value-Wert bei der Combo-Box ausgelesen wurde und den dann in einem Text-Array abgefragt. z.B. Auswahl Box --> Value = 1, also texte[1].
                Das Ergebnis habe ich dann in einem Javascript-Alert zum Test ausgegeben. Funktioniert auch.....
                Wie aber bekomme ich jetzt den gefundenen Text neben meine Auswahlbox? Habe daneben ein Label-Tag gesetzt mit for=<auswahlboxname>, id=<labelname>. das label-tag hat ja kein Value-Attribut oder Ähnliches!

                Jetzt habe ich noch ein Problem, vorrausgesetzt, das mit den Texten funktioniert....

                Ich habe noch zwei andere Auswahlboxen, die Ihren Inhalt ändern, je nachdem, was in bei der 1. Box ausgewählt wurde. Das Ganze läuft momentan auch über Arrays. Da der Value-Wert der obersten Auswahlbox immer eine Zahl ist, kann ich die Textinhalte der Arrays auch immer direkt mit dem gewählten Index ansprechen, also:

                Auswahlbox value = 1 --> InhaltBoxZwei[1].

                Das funktioniert ganz gut. Jetzt haben aber die beiden unteren Boxen als Value einen String, damit ich beim Absenden des Formulars gleich den String-Wert weiterverarbeiten kann. wie kann ich jetzt den Value-Wert von diesen Boxen benutzen, um ein Array auszulesen, dass die Texte enthält, die neben der Box erscheinen sollen?
                Ein Beispiel wäre cool! ;o)

                Vielen Dank & Gruss

                1. hi,

                  Wie aber bekomme ich jetzt den gefundenen Text neben meine Auswahlbox?

                  Dazu hast du bereits mehrere Vorschläge bekommen.
                  Wo liegen deine Schwierigkeiten bei deren Umsetzung?

                  Jetzt haben aber die beiden unteren Boxen als Value einen String, damit ich beim Absenden des Formulars gleich den String-Wert weiterverarbeiten kann. wie kann ich jetzt den Value-Wert von diesen Boxen benutzen, um ein Array auszulesen, dass die Texte enthält, die neben der Box erscheinen sollen?

                  Niemand zwingt dich, für dein Textarray einen _nummerischen_ Index zu benutzen.
                  http://de.selfhtml.org/javascript/objekte/array.htm#assoziative_arrays

                  gruß,
                  wahsaga

                  --
                  /voodoo.css:
                  #GeorgeWBush { position:absolute; bottom:-6ft; }
                2. moin Pablos :)

                  Wie aber bekomme ich jetzt den gefundenen Text neben meine Auswahlbox? Habe daneben ein Label-Tag gesetzt mit for=<auswahlboxname>, id=<labelname>. das label-tag hat ja kein Value-Attribut oder Ähnliches!

                  ein value-Attribut? brauchts gar nicht ;) Wie Jean schon richtig feststellte, kann es überall eine id geben. Die hast sogar schon gesetzt. Jetzt musst du bei deinem Event nur noch nach dem Element mit der entsprechenden id suchen.
                  An deiner Stelle würde ich dem Label eine ID geben, die der Auswahlbox entspricht (deren Name oder dergleichen) - das macht die Sache einfacher.
                  Hast du dieses Element gefunden, kannst du den Wert des Labels ändern.

                  Zum beispiel könnte deine Auswahlbox und Labels so aussehen:

                    
                  <select name="auswahlbox" onchange="changeText(this)">  
                        <option>eins</option>  
                        <option>zwei</option>  
                        <option>drei</option>  
                  </select>  
                  <label for="auswahlbox" id="label1">Auswahl:</label>  
                  <label for="auswahlbox" id="label2">Auswahl:</label>  
                  <label for="auswahlbox" id="label3">Auswahl:</label>  
                  
                  

                  die dazugehörige Methode:

                    
                  function changeText(element){  
                    var index=element.selectedIndex  
                    foundElement=document.getElementById("label"+index);  
                    //index für die Nummer des Labels  
                    foundElement.nodeValue=texte[index]  
                  }  
                  
                  

                  --> Keinerlei Garantie auf Vollständigkeit und oder Richtigkeit ;)

                  Das funktioniert ganz gut. Jetzt haben aber die beiden unteren Boxen als Value einen String, damit ich beim Absenden des Formulars gleich den String-Wert weiterverarbeiten kann. wie kann ich jetzt den Value-Wert von diesen Boxen benutzen, um ein Array auszulesen, dass die Texte enthält, die neben der Box erscheinen sollen?
                  Ein Beispiel wäre cool! ;o)

                  Mein Beispiel mit den durchnummerierten Labels und dem Auslesen des selektierten Indexes macht den Value der Auswahlbox uninteressant für dein Vorhaben ;)

                  liebe Grüße aus Berlin
                  lina-

                  --
                  Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
                  1. --> Keinerlei Garantie auf Vollständigkeit und oder Richtigkeit ;)

                    und da fällt mir auch direkt ein blöder Fehler auf. SelectedIndex beginnt natürlich bei 0 und nicht bei 1. Das bedeutet für dich, dass deine Labels so aussehn müssten:

                      
                    <label for="auswahlbox" id="label0">Auswahl:</label>  
                    <label for="auswahlbox" id="label1">Auswahl:</label>  
                    <label for="auswahlbox" id="label2">Auswahl:</label>  
                    
                    
                    --
                    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
                  2. hi,

                    foundElement=document.getElementById("label"+index);
                      //index für die Nummer des Labels
                      foundElement.nodeValue=texte[index]

                    Du kannst dem nodeValue des Labels nicht deinen Text zuweisen - dazu musst du dir zunächst einen Textknoten unterhalb des Labels suchen.

                    gruß,
                    wahsaga

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