Sonni: <select>-Objekt dynamisch als "selected" kennzeichnen

Hallo JavaScript-Profis,

ich brauche einen Tipp, wie man in einem Select-Objekt mit Monatsnummern eine der Optionen nicht hart-codiert, sondern dynamisch (je nach aktuellem Monat) als "selected" kennzeichnet.
Ich habe schon u.s. probiert, aber es funktioniert nicht:

<SCRIPT LANGUAGE="JavaScript">
function setzen()
{
var datum = new Date();
var monat = datum.getMonth();
document.myform.k1.focus();
document.myform.k1.selectedIndex = monat ;
}
</SCRIPT>

Das Select-Objekt ist Teil von <FORM name="myform"> und sieht so aus:

<td>
               <select NAME="K1" TYPE="text"  VALUE="HUGO">
                  <option>01</option>
                  <option>02</option>
                  <option>03</option>
                  <option>04</option>
                  <option>05</option>
                  <option>06</option>
                  <option>07</option>
                  <option>08</option>
                  <option>09</option>
                  <option>10</option>
                  <option>11</option>
                  <option>12</option>
               </select>
           </td>

Das JavaScript rufe ich mit   <BODY onLoad=setzen()>   auf. Ich weiß leider nichts besseres, bin mir aber unsicher, ob das überhaupt der richtige Event ist.

Die Ausführung klappt nicht und ich erhalte die Fehlermeldung:
"document.myform.k1"  ist kein Objekt.  Vielleicht ist   "myform" zum Zeitpunkt der Ausführung nicht bekannt ??

Jeder Hinweis wird dankbar angenommen !!!
Sonni

  1. Hallo,

    also erstmal sollten deine options auch einen value haben...

    <option value="01">01</option>

    dann wie du schon richtig bemerkt hast ist bei Onload nicht gewährleistet, dass alle objekte schon bekannt sind...

    deshalb kannst du am ende der seite einen scriot bereich definieren, der wie folgt aussehen könnte:

    <script type="text/javascript">
    <!--
    function setz_bereich()
    {
         for (var i=0; i<=document.myform.K1.length-1; i++)
         {
         if (document.myform.K1.options[i].value==monat)
              {
              document.myform.K1.options[i].selected=true;
              break;
              }
         }
    }
    </script>

    diese funktion kannst du dann onload starten...
    es könnte noch einen fehler geben, bei dem vergleich des values mit dem monat, datentypen beachten und ggf. umwandeln

    Odium

  2. Hallo,

    schreib doch mal k1 in <select NAME="K1" TYPE="text"  VALUE="HUGO"> klein, so wie im JavaScript-Teil. Sonst kann er das nämlich nicht finden.

    Viele Grüße,
    Jürgen