Peter_g: mehr als ein value bei options moeglich?

Hallo *,

Ich braeuchte fuer ein Problem eine options Element mit 2 values.

standart ist ja:
<option value="Bingo - gewonnen!">Blindauswahl 5</option>

ich brauche
<option value="Bingo - gewonnen!" value2="abc5">Blindauswahl 5</option>

so funktioniert es allerding nicht.

gibt es eine Moeglichkeit so etwas zu realiesieren, per js vielleicht?

thx
peter

  1. moin Peter_g :)

    ich brauche
    <option value="Bingo - gewonnen!" value2="abc5">Blindauswahl 5</option>

    Das geht glaube ich nicht.

    so funktioniert es allerding nicht.

    dacht ich mir ;)

    gibt es eine Moeglichkeit so etwas zu realiesieren, per js vielleicht?

    Genau das kannst du wahrscheinlich nicht realisieren. Aber du könntet per Javascript den value tauschen...

    Schau dir hierzu am besten die die value-Eigenschaft von Formularelementen an.

    liebe Grüße aus Berlin
    lina-

    --
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
  2. Hallo,

      
    <select name="blub">  
    <option id="heinz" value="palim" value2="palim palim">asdf</option>  
    </select>  
      
    <script type="text/javascript">  
    var me=document.getElementById('heinz');  
    alert(me.getAttribute('value2'));  
    </script>  
    
    

    gruss

    --
    no strict;
    no warnings;
    79.78 cups of Coffee (Brewed) + Me = Death
    <exal> BEI MIR KOMMT IMMER DIE EINS STATT EINEM AUSRUFEZEICHEN111 (http://german-bash.org/3361)
    1. moin Eternius :)

      <select name="blub">
      <option id="heinz" value="palim" value2="palim palim">asdf</option>
      </select>

      <script type="text/javascript">
      var me=document.getElementById('heinz');
      alert(me.getAttribute('value2'));
      </script>

        
      Na da bin ich ja mal platt ... Danke für die Richtigstellung.  
        
      liebe Grüße aus Berlin  
      lina-
      
      -- 
      Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:) 
      
    2. Das Problem dabei ist, dass ich an die id nicht mehr dynamisch ran komme. Wenn ich einen Eitrag selectiert habe stehen mir nur noch die Informationen .text und .value zur Verfuegung.

      Da hab ich mein Probelm wohl zu ungenau beschrieben ;)

      Also beim selectieren eines Eintrages, muesste ich Zugriff auf 2 values haben.

      Umweg waere natuerlich in einem Array, den 2. value zu hinterlegen, aber das find ich nicht so toll.

      Ich habe leider auch nicht die moeglichkeit 2 Informationen im value zu hinterlegen und sie dann beim auswaehlen entsprechend aufzuarbeiten.

        
        
      <html><head><title>Test</title>  
      <script type="text/javascript">  
      function CheckAuswahl () {  
        for (i = 0; i < document.Testform.Auswahl.length; ++i)  
          if (document.Testform.Auswahl.options[i].selected == true)  
            alert(document.Testform.Auswahl.options[i].value);  
            alert(document.Testform.Auswahl.options[i].id);  <<<< JS Fehler  
      }  
      </script>  
        
      </head><body>  
      <form name="Testform" action="">  
      <select name="Auswahl" size="2" onChange="CheckAuswahl()">  
      <option value="v1" id="id_v1" value2="blabla1">Blindauswahl 1</option>  
      <option value="v2" id="id_v2" value2="blabla2">Blindauswahl 2</option>  
      </select>  
      </form>  
      </body></html>  
      
      
      1. moin peter_g :)

        alert(document.Testform.Auswahl.options[i].id);  <<<< JS Fehler

        seit wann haben denn options ne id?
        So kann das ja nich gehn ;)

        In Anhlehnung an Eternius' Idee probier mal folgendes:

          
        <html><head><title>Test</title>  
        <script type="text/javascript">  
        function CheckAuswahl () {  
          for (i = 0; i < document.Testform.Auswahl.length; ++i)  
            if (document.Testform.Auswahl.options[i].selected == true)  
              var myOption=document.Tesform.Auswahl.options[i];  
              alert(myOption.value);  
              myOption.value=myOption.getAttribute('value2');  
              alert(myOption.value);  
          
        }  
        </script>  
          
        </head><body>  
        <form name="Testform" action="">  
        <select name="Auswahl" size="2" onChange="CheckAuswahl()">  
        <option value="v1" id="id_v1" value2="blabla1">Blindauswahl 1</option>  
        <option value="v2" id="id_v2" value2="blabla2">Blindauswahl 2</option>  
        </select>  
        </form>  
        </body></html>  
        
        

        liebe Grüße aus Berlin
        lina-

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

          seit wann haben denn options ne id?

          Mindestens seit HTML 4.01 (bin jetzt zu faul, noch ältere Standards durchzuwühlen.

          function CheckAuswahl () {
            for (i = 0; i < document.Testform.Auswahl.length; ++i)
              if (document.Testform.Auswahl.options[i].selected == true)
                var myOption=document.Tesform.Auswahl.options[i];
                alert(myOption.value);

          Einrückung hat in Javascript nichts mit Verschachtelung zu tun. Der Alert steht außerhalb der Schleife.

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          1. moin MudGuard :)

            seit wann haben denn options ne id?
            Mindestens seit HTML 4.01 (bin jetzt zu faul, noch ältere Standards durchzuwühlen.

            eijeijei... das is ja nu peinlich ... irgendwie hab ich an das name-Attribut gedacht und das mit id verwechselt *kopf hängen lass*

            Einrückung hat in Javascript nichts mit Verschachtelung zu tun. Der Alert steht außerhalb der Schleife.

            Ich sollte aufhören zu posten, wenn ich sowas verwechsel und Klammern vergess ;)

            liebe Grüße aus Berlin
            lina-

            --
            Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
            1. danke lina, es funktioniert genau so wie ich es brauche
              also immer schoen weiter posten ;)

              Gruss
              Peter

          2. Hi Andreas,

            Du hast recht, beim hinzufuegen von codezeilen habe ich vergessen, die Klammern zu setzten, die man ja bei nur einer Zeile in einer Schleife/if Anweisung nicht braucht

            Gruss
            peter

            Einrückung hat in Javascript nichts mit Verschachtelung zu tun. Der Alert steht außerhalb der Schleife.

        2. hi,

          seit wann haben denn options ne id?

          Schon viel länger, als sie ein Pseudo-Attribut value2 haben - das ist nämlich bis jetzt noch nicht der Fall.

          gruß,
          wahsaga

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

            Schon viel länger, als sie ein Pseudo-Attribut value2 haben - das ist nämlich bis jetzt noch nicht der Fall.

            auch das wäre kein Problem (ziemlich weit unten auf der Seite).

            gruss

            --
            no strict;
            no warnings;
            79.78 cups of Coffee (Brewed) + Me = Death
            <exal> BEI MIR KOMMT IMMER DIE EINS STATT EINEM AUSRUFEZEICHEN111 (http://german-bash.org/3361)
            1. hi,

              Schon viel länger, als sie ein Pseudo-Attribut value2 haben - das ist nämlich bis jetzt noch nicht der Fall.

              auch das wäre kein Problem (ziemlich weit unten auf der Seite).

              Diese Möglichkeit ist mir bekannt - halte ich aber, sofern wir die Seiten immer noch von HTML- und nicht von XML-Parsern verarbeiten lassen, für Schmarrn.

              gruß,
              wahsaga

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

        for (i = 0; i < document.Testform.Auswahl.length; ++i)
            if (document.Testform.Auswahl.options[i].selected == true)
              alert(document.Testform.Auswahl.options[i].value);
              alert(document.Testform.Auswahl.options[i].id);  <<<< JS Fehler

        Dir ist klar, daß der zweite alert (trotz der schönen Einrückung) außerhalb der Schleife steht? Und daß i zu dem Zeitpunkt einen Wert enthält, dem in dem options-Array kein Element zugeordnet ist?

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  3. hi,

    Ich braeuchte fuer ein Problem eine options Element mit 2 values.

    Gibt es nicht.

    ich brauche
    <option value="Bingo - gewonnen!" value2="abc5">Blindauswahl 5</option>

    Wofür brauchst du das?

    gibt es eine Moeglichkeit so etwas zu realiesieren, per js vielleicht?

    Es steht dir frei, beispielsweise mehrere Werte, mit einem beliebigen von dir gewählten Trennzeichen separiert, zu einem value-Inhalt zusammenzufügen und per JS auch wieder auseinanderzunehmen. (siehe string-Funktionen in JS.)

    gruß,
    wahsaga

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

      ich brauche
      <option value="Bingo - gewonnen!" value2="abc5">Blindauswahl 5</option>

      Wofür brauchst du das?

      Bei der Auswahl eines Elements muss ich an die ID(interne Verwaltungnummer) und einen erweiterten Elementnamen ran kommen.

      gibt es eine Moeglichkeit so etwas zu realiesieren, per js vielleicht?

      Es steht dir frei, beispielsweise mehrere Werte, mit einem beliebigen von dir gewählten Trennzeichen separiert, zu einem value-Inhalt zusammenzufügen und per JS auch wieder auseinanderzunehmen. (siehe string-Funktionen in JS.)

      Das geht leider nicht, weil dazu eine menge Code um zu schreiben waere, auf den ich keinen Zugriff habe.

      Umweg waere eventuell, ueber die id auf die db zu zugreifen und dort meine benoetigte Info abzuholen. Aber das finde ich nicht so gut, weil es sicher performance probleme geben wuerde.

      Gruss
      peter