Michi: getElementByID

hallo zusammen

habe wieder mal eine kleine frage.
aus einem dropdownmenü, kann der user einen bestimmten menüpunkt auswählen. diese auswahl, möchte ich nun direkt unter dem dropdownmenü anzeigen lassen.
wie kann ich das machen?
ist mein lösungsansatz richtig:

<body>
<form name="wecker" method="post" action="">
  <select name="stunden">
<script type="text/javascript">
var i = 0;
var b = 0;
 do
  {
   if (i <= 9){b="0"+i;}
   else{b=i;}
   document.write('<option value="'+i+'">'+b+'</option>');
   i = i + 1;
  }
 while (i < 24);
</script>
</select>
  <select name="minuten">
<script type="text/javascript">
var i = 0;
var b = 0;
 do
  {
   if (i <= 9){b="0"+i;}
   else{b=i;}
   document.write('<option value="'+i+'">'+b+'</option>');
   i = i + 1;
  }
 while (i < 60);
</script>
  </select>
  <input type="submit" name="Submit" value="Senden" onClick="rechnen(wecker.stunden.value, wecker.minuten.value)">
</form>

<script type="text/javascript">
function rechnen(stunden, minuten)
{
 weckhrs = Number(stunden)
 weckmins = Number(minuten);
 document.getElementByID("weckzeit").innerHTML = (weckhrs + ":" + weckmins);

}
</script>
<P id="weckzeit">oo</P>

Danke für eure Hilfe.

  1. <body>
    <form name="wecker" method="post" action="">
      <select name="stunden">
    <script type="text/javascript">
    var i = 0;
    var b = 0;
     do
      {
       if (i <= 9){b="0"+i;}
       else{b=i;}

    sieht besser aus:
    b = i < 10 ? '0' + i : i;

    document.write('<option value="'+i+'">'+b+'</option>');
       i = i + 1;

    i++;

    }
     while (i < 24);

    und warum du hier ein do ... while schleife verwendest ist mir schleierhaft.

    for(var i = 0; i < 25;i++)
    {
    ...
    }

    ist dafür gebräuchlicher.

    eigentlich kannst du alles mit JS ausgeben, so wundern sich die Besucher, die JS abgeschaltet haben, nicht das da etwas ist, was sie nicht benutzen können.

    <input type="submit" name="Submit" value="Senden" onClick="rechnen(wecker.stunden.value, wecker.minuten.value)">

    Das ist falsch.
    Ein select hat kein value. Wie du auf den wert zugreifst: http://selfhtml.teamone.de/javascript/objekte/options.htm

    Du kannst hier mit this arbeiten, da deine Schreibweise in den meisten Browsern zu Problemen führen kann. es ist nicht klar, welches Objekt 'wecker' du ansprechen möchtest.

    <input type="submit" name="Submit" value="Senden"
    onClick="rechnen(this.form.stunden[this.form.stunden.selectedIndex].value, this.form.minuten[this.form.minuten.selectedIndex].value);">

    function rechnen(stunden, minuten)
    {
     weckhrs = Number(stunden)
     weckmins = Number(minuten);
     document.getElementByID("weckzeit").innerHTML = (weckhrs + ":" + weckmins);

    ausser den uberflüssigen Klammern ist das korrekt.

    Struppi.

    1. Hi,

      document.getElementByID("weckzeit").innerHTML = (weckhrs + ":" + weckmins);
      ausser den uberflüssigen Klammern ist das korrekt.

      AFAIK muß das D klein sein: getElementById

      cu,
      Andreas

      --
      MudGuard? Siehe http://www.Mud-Guard.de/
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. document.getElementByID("weckzeit").innerHTML = (weckhrs + ":" + weckmins);
        ausser den uberflüssigen Klammern ist das korrekt.

        AFAIK muß das D klein sein: getElementById

        selbstverständlich.

        Ich ging davon aus, das der OP sich die Fehlermeldung seine Browsers angeschaut hatte, bzw. keine bekommen hat.

        Struppi.

        1. Ich ging davon aus, das der OP sich die Fehlermeldung seine Browsers angeschaut hatte, bzw. keine bekommen hat.

          Habe tatsächlich keine Fehlermeldung bekommen. Und der Netscape habe ich auf dieser Maschine nicht installiert (Dort sieht man ja die Fehler besser).

          Auf alle Fälle möchte ich allen danken, die mir geantwortet haben.

          cu
          michi

  2. Hi,

    warum reduzierst Du Deinen Code nicht auf das Wesentliche?

    ist mein lösungsansatz richtig:
    document.getElementByID("weckzeit").innerHTML

    Fuer Mozilla und IE passt das (Safari und Opera weiss ich jetzt nicht), moderner sind allerdings die Methoden des DOM, z. B:
    createTextNode();
    appendChild();
    removeChild();
    etc...

    http://selfhtml.teamone.de/javascript/objekte/document.htm#create_text_node

    Gruesse  Joachim

    1. Hi,

      document.getElementByID("weckzeit").innerHTML
      Fuer Mozilla und IE passt das (Safari und Opera weiss ich jetzt nicht),

      Das kann z.Zt. *jeder* W3C-DOM-Browser, also auch Opera und Konqueror/Safari. Zukünftige Browser werden es sich also wohl kaum leisten können, innerHTML zu ignorieren (gleichwohl frage ich trotzdem sicherheitshalber darauf ab).

      Und "modern" ist es auch. ;-)

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!