• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

selected index undefined

musclebreast

Mitglied
Hallo,

ich habe eine Selectbox in der wähle ich per Script einen Index aus. Und wenn ich jetzt den den slected index ausgeben möchte, bekomme ich die Meldung undefined. Angezegt wird die Auswahl richrig in der Box nur warum kann ich auf den selected index nicht zugreifen?


Code:
document.write('<select NAME="ProjectType" ID="ProjectType" ONCHANGE="javascript:ChangeLocationMenu()">');


    for (i = 0; i < Project_type.length; i++)
      {
            
        
        document.write('<option value="'+Project_type[i]+'">'+Project_type[i]+'</option>');
   
      }

    document.write('</select>');
    
    document.getElementById('ProjectType').options[4].selected=true;
    alert(document.getElementById('ProjectType').selectedindex);

Ich hoffe ihr habt einen Tipp, denn ich verzweifel schon wieder:)

LG,

Lara
 
Gibt es denn den 4. Index bei dem Auswahlfeld?

Verwende mal zum Setzen:
Code:
document.getElementById('ProjectType').selectedIndex = 4;
 
Und daran denken, dass das erste Element den Index 0 hat. Es sollte also zumindest fünf <option> Elemente geben.

Wenn du dir das Leben leichter machen willst, dann steige bei "einfacheren" JS-Operationen auf jQuery um.
 
Hallo, also ich habe es auch noch so probiert:

Code:
document.getElementById('ProjectType').selectedIndex = 4;

direkt danach gebe ich den wert auch gleich aus:

 alert(document.getElementById('ProjectType').selectedindex);

wieder undefined .....unglaublich....nein in meiner form steht optisch der richtige wert drin, da ist kein index problem...puhhhh...habt ihr noch irgendeine idee was hier das problem sein kann? ich zweifel schon stark an mir, weil ich 3 stunden daran sitze....

lg

lara
 
hi,

ok, aber schau, wenn ich den value abfrage bekomme ich klar den wert der mit in der select box angezeigt wird:

Code:
document.write('<select NAME="ProjectType" ID="ProjectType" ONCHANGE="javascript:ChangeLocationMenu()">');


    for (i = 0; i < Project_type.length; i++)
      {
            
        
        document.write('<option value="'+Project_type[i]+'">'+Project_type[i]+'</option>');
   
      }

    document.write('</select>');
    
    document.getElementById('ProjectType').selectedIndex = 2;
    alert(document.getElementById('ProjectType').value);
    
    alert(document.getElementById('ProjectType').selectedindex);

kann es sein, dass es ein problem ist, dass ich die option werte aus einem array auslese?

wie könnne wir es weiter analysieren? irgendwie komme ich nicht weiter....leider...

lg,

lara
 
Ich weiss ja nicht, was du bezwecken willst, aber in in jQuery würde ich schreiben:

Code:
alert($('#Prototype option:selected').val());

Wenn ich daraufhin nichts zurück erhalte, gibt es entweder kein solches Element, oder es existiert und hat keinen Wert.
 
hallo,

ich habe es nochmal mit jwuery versucht....selbes ergebnis...der index ist undefnied....ich hoffe ihr könnt mir helfen weil ich habe einen totalen denkfehler und komme nicht drauf...wie ihr seht gehe ich ein array durch mit werden und lade die in die selctbox....das klappt..zumindest sehe ich alles in der selct box...muss ich da auch nen index hinterlegen...eigentlich doch nicht?


dann setze ich den index auf 2....das sollte es doch schon sein....wo ist mein fehler..warum kriege ich keinen index?


Code:
document.write('<select NAME="ProjectType" ID="ProjectType" ONCHANGE="javascript:ChangeLocationMenu()">');


    for (i = 0; i < Project_type.length; i++)
      {
            
        
        document.write('<option value="'+Project_type[i]+'">'+Project_type[i]+'</option>');
   
      }

    document.write('</select>');
    
    document.getElementById('ProjectType').selectedIndex = 2;
    alert(document.getElementById('ProjectType').value);
    
    alert($('#Prototype option:selected').val());

lg,

lara
 
Du probierst herum ohne zu wissen was Du machst. Das erkennt man auch an deinem Code.

Also nochmal:
Mit obj.selectedIndex kann sowohl die aktuelle Auswahl gelesen als auch geschrieben werden.
Um auf den value-Wert eines bestimmten Auswahlfeldes zuzugreifen musst Du diesen ansprechen. Also nicht

Code:
alert(document.getElementById('ProjectType').value);

(denn das würde nur den nicht vorhandenen value-Wert des Feldes mit der ID ProjektType auslesen) sondern mit

Code:
alert(document.getElementById('ProjectType').options[document.getElementById('ProjectType').selectedIndex].value);

jQuery muss man für diese Grundlagen nicht mal verwenden - das geht auch ohne diese JavaScript-Bibliothek.

Btw. könntest Du auch den ausgewählten Wert auf einem anderen Weg setzen, nämlich innerhalb der for-Schleife. Beispiel:

Code:
for (i = 0; i < Project_type.length; i++)
{
 var selectedOption = "";
 if( i == 2 ){selectedOption = "selected";
 document.write('<option value="'+Project_type[i]+'" selected='"+selectedOption+"'>'+Project_type[i]+'</option>');
}

Und nochmal als Lektüre:
SELFHTML: JavaScript / Objektreferenz / options
SELFHTML: JavaScript / Objektreferenz / options
 
Zurück
Oben