getObjectById mit Selectbox
Stil
- javascript
0 Dieter Raber0 Rouven0 Der Martin0 Stil
0 Struppi
hallo,
ich möchte gern selectierte Werte aus einem select abgreifen.
per direktem zugriff wie hier auf selfhtml geht das auch.
z.b. alert(document.Testform.Auswahl.options[document.Testform.Auswahl.selectedIndex].value);
ich würde es aber gern allgemeiner halten, einer funktion die ID der selectbox übergeben und dann den wert abgreifen. - das geht aber eigeneartiger weise nicht.
z.b.
alert(document.getObjectById('Auswahl').options[document.getObjectById('Auswahl').selectedIndex].value);
woran liegt das? ist es prinzipiell nicht möglich auf ein select über die ID zuzugreifen? (eventuell wegen den potentiell vorhandenen unter-elementen?
danke schonmal - stil
mein HTML für das beispiel komplett:
<html>
<body>
<SCRIPT type="text/javascript">
function doit() {
alert(document.Testform.Auswahl.options[document.Testform.Auswahl.selectedIndex].value);
alert(document.getObjectById('Auswahl').options[document.getObjectById('Auswahl').selectedIndex].value);
}
</SCRIPT>
<form name="Testform" action="">
<select id="Auswahl" name="Auswahl" onchange="javascript:doit()">
<option value="x0001">Wert 1</option>
<option value="x0002">Wert 2</option>
<option value="x0003">Wert 3</option>
<option value="x0004">Wert 4</option>
<option value="x0005">Wert 5</option>
</select>
</form>
</body>
</html>
in diesem Beispiel bekomme ich zwar den ersten alert, nicht aber den 2.
Hallo Stil,
Die Funktion heisst nicht getObjectById, sondern getElementById.
Gruß,
Dieter
Hi,
ich würde es aber gern allgemeiner halten, einer funktion die ID der selectbox übergeben und dann den wert abgreifen. - das geht aber eigeneartiger weise nicht.
naja, eigenartig ist relativ. Wenn du mal die Fehlermeldung des Browsers genauer anschaust (bevorzugt Firefox und Konsorten, da ist das Debugging leichter), dann würdest du feststellen, dass es getObjectById nicht gibt (es sei denn, du hättest das einprogrammiert...). Die korrekte Methode heißt document.getElementById.
MfG
Rouven
Hi,
ich würde es aber gern allgemeiner halten, einer funktion die ID der selectbox übergeben und dann den wert abgreifen. - das geht aber eigeneartiger weise nicht.
doch, wenn man es richtig macht, geht das auch. :-)
alert(document.Testform.Auswahl.options[document.Testform.Auswahl.selectedIndex].value);
alert(document.getObjectById('Auswahl').options[document.getObjectById('Auswahl').selectedIndex].value);
in diesem Beispiel bekomme ich zwar den ersten alert, nicht aber den 2.
Aber dafür eine Fehlermeldung, die du uns verschweigst.
Es gibt nämlich keine Methode getObjectById(), was du meinst, ist vermutlich getElementById().
Ciao,
Martin
OMG ich Dussel!
da schraub ich ewig dran rum und dann ists nur ein denkfehler. ich glaub ich brauch urlaub
besten dank
grüße
stil
Aber dafür eine Fehlermeldung, die du uns verschweigst.
Es gibt nämlich keine Methode getObjectById(), was du meinst, ist vermutlich getElementById().
<html>
<body>
<SCRIPT type="text/javascript">
function doit() {
alert(document.Testform.Auswahl.options[document.Testform.Auswahl.selectedIndex].value);
alert(document.getObjectById('Auswahl').options[document.getObjectById('Auswahl').selectedIndex].value);
}
</SCRIPT>
<form name="Testform" action="">
<select id="Auswahl" name="Auswahl" onchange="javascript:doit()">
<option value="x0001">Wert 1</option>
<option value="x0002">Wert 2</option>
<option value="x0003">Wert 3</option>
<option value="x0004">Wert 4</option>
<option value="x0005">Wert 5</option>
</select>
</form>
</body>
</html>
Wozu eine extra ID einführen.
<select onchange="doit(this)">
....
function doit(sel) {
alert(sel.options[sel.selectedIndex].value);
}
Das ist noch allgemeiner und kürzer.
Struppi.