Felix Riesterer: Wert aus select-Feld auslesen

Beitrag lesen

Lieber Thomas,

SELFHTML sagt, dass der Wert des Namensattributes mit einem Buchstaben beginnen muss.

Desweiteren darf eine ID dokumentweit nur einmal vergeben werden (daher heißt die Methode auch "getElementById" und nicht "getElement_s_ById").

Normalerweise müsste ich so den Value vom select auslesen können:
document.getElementById(114)[1].options[document.getElementById(114)[1].selectedIndex].value

Der Rückgabewert von getElementById ist keine HTML-Collection, sondern ein Objekt (oder eben false). Daher kann Dein "[1]" zu nichts anderem, als eben einem Fehler führen! Wenn Du sicherstellen möchtest, dass Du wirklich das Select-Feld erwischst, dann nimm nicht "getElementById", sondern "getElementsByTagName('select')". Wenn Du sicher sein kannst, dass es nur ein Select-Feld im Formular gibt, dann kannst Du Dir das Prüfen auf die dem Select-Feld gegebene ID sparen. Sollten aber mehrere Select-Felder im Formular existieren, so musst Du die anderen eben aussortieren.

// ungetestet!  
var allSelects = document.getElementsByTagName("select");  
var mySelect = allSelects[0]; // reicht aus, wenn es nur ein Select-Feld gibt  
  
if (allSelects.length > 1) {  
    // es gibt (leider) doch mehrere Select-Felder  
    for (var i=0; i < allSelects.length; i++) {  
        if (allSelects[i].id && allSelects[i].id == "114")  
           mySelect = allSelects[i];  
    }  
}  
  
var myValue = mySelect.options[mySelect.selectedIndex].value;

Liebe Grüße aus Ellwangen,

Felix Riesterer.