selectedIndex
ist eine Zahl, sie hat keine value
Eigentum.
Wenn Sie eine select
Element, das nur eine Einfachauswahl zulässt (wie Ihres), ist der einfachste Weg, seinen Wert zu erhalten, die select
Element value
Eigenschaft :
function go(x) {
alert(x.value);
}
Überprüfen Sie, ob es auf den Browsern funktioniert, die Sie unterstützen wollen, aber MaryAnne (siehe Kommentare) hat es auf allen aktuellen gängigen Browsern überprüft, und ich habe IE6, IE7 und Firefox 3.6 (z.B. ältere Browser) überprüft, und sie funktionieren alle. Da es in DOM2 HTML (der Link oben) angegeben ist...
Aber re selectedIndex
meinten Sie wahrscheinlich:
function go(x) {
alert(x.options[x.selectedIndex].value);
}
Ich würde wahrscheinlich noch etwas weiter gehen und defensiver sein:
function go(x) {
var option = x.options[x.selectedIndex];
if (option) {
alert(option.value);
}
}
...oder
function go(x) {
var option = x.options[x.selectedIndex];
var value = option && option.value;
alert(value); // Alerts "undefined" if nothing is selected
}
...falls es keine ausgewählte Option gibt (in diesem Fall, option
wird undefined
), obwohl mit Ihrem besondere Markup und Code, ist mir kein User-Agent bekannt, bei dem die change
ausgelöst werden, ohne dass etwas ausgewählt wurde. Zumindest glaube ich das nicht - "ich glaube" ist der Grund für die Defensive :-)