Stil: getObjectById mit Selectbox

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.

  1. Hallo Stil,

    Die Funktion heisst nicht getObjectById, sondern getElementById.

    Gruß,

    Dieter

  2. 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

    --
    -------------------
    Ambition is the last refuge of failure.  --  Oscar Wilde (Irish Poet, Novelist, Dramatist and Critic, 1854-1900)
  3. 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

    --
    Die letzten Worte des stotternden Beifahrers:
    Frei... frei... frei... freilich kommt da was!!
    1. 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().

  4. <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.

    --
    Javascript ist toll (Perl auch!)