[JavaScript] Datum in einem Formular

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] Datum in einem Formular

    Hallo!



    Ich habe ein Script das mir 3 Felder ausgibt wo ich Tag Monat und Jahr auswählen kann. (wobei immer die richtigen Tage pro Monat stehen)


    Wenn ich jetzt aber in dem Formular nocheinmal die 3 gleichen Felder einfüge ( Weil ich Anfangs und Enddatum eingeben möchte) funktioniert es bei denen nicht.
    Was muss ich da ändern?


    Ich habe folgendes Script:
    Code:
    [php]
    <html>
    <head>
    	<title>JavaScript</title>
    
    </head>
    
    
    <!--
    Damit die Datumsauswahl mit dem aktuellen Datum versehen wird, 
    brauchen Sie drei Teile: das Script, einen erweiterten Body-Tag und ein
     modifiziertes Formular.
    
    //-->
    
    
    <SCRIPT language="JavaScript">
    
    
    //set todays date
    
    Now = new Date();
    NowDay = Now.getDate();
    NowMonth = Now.getMonth();
    NowYear = Now.getYear();
    if (NowYear < 2000) NowYear += 1900; //for Netscape
    
    
    //function for returning how many days there are in a month including leap 
    years
    
    function DaysInMonth(WhichMonth, WhichYear)
    {
            var DaysInMonth = 31;
    
            if (WhichMonth == "Apr" || WhichMonth == "Jun" || WhichMonth == "Sep" || WhichMonth == "Nov") DaysInMonth = 30;
    
            if (WhichMonth == "Feb" && (WhichYear/4) != Math.floor(WhichYear/4))    DaysInMonth = 28;
    
            if (WhichMonth == "Feb" && (WhichYear/4) == Math.floor(WhichYear/4))    DaysInMonth = 29;
    
            return DaysInMonth;
    }
    
    
    //function to change the available days in a months
    
    function ChangeOptionDays(Which)
    {
            DaysObject = eval("document.Form1." + Which + "Day");
            MonthObject = eval("document.Form1." + Which + "Month");
            YearObject = eval("document.Form1." + Which + "Year");
    
            Month = MonthObject[MonthObject.selectedIndex].text;
            Year = YearObject[YearObject.selectedIndex].text;
    
            DaysForThisSelection = DaysInMonth(Month, Year);
    
            CurrentDaysInSelection = DaysObject.length;
    
            if (CurrentDaysInSelection > DaysForThisSelection)
            {
                    for (i=0; i<(CurrentDaysInSelection-DaysForThisSelection); i++)
                    {
                            DaysObject.options[DaysObject.options.length - 1] = null
                    }
            }
    
            if (DaysForThisSelection > CurrentDaysInSelection)
            {
                    for (i=0; i<(DaysForThisSelection-CurrentDaysInSelection); i++)
                    {
                            NewOption = new Option(DaysObject.options.length + 1);
                            DaysObject.add(NewOption);
                    }
            }
    
            if (DaysObject.selectedIndex < 0) DaysObject.selectedIndex == 0;
    }
    
    
    //function to set options to today
    
    function SetToToday(Which)
    {
    
            DaysObject = eval("document.Form1." + Which + "Day");
            MonthObject = eval("document.Form1." + Which + "Month");
            YearObject = eval("document.Form1." + Which + "Year");
    
    
            YearObject[0].selected = true;
            MonthObject[NowMonth].selected = true;
    
            ChangeOptionDays(Which);
    
            DaysObject[NowDay-1].selected = true;
    }
    
    
    //function to write option years plus x
    
    function WriteYearOptions(YearsAhead)
    {
            line = "";
    
            for (i=0; i<YearsAhead; i++)
            {
                    line += "<OPTION>";
                    line += NowYear + i;
            }
    
            return line;
    }
    
    
    </SCRIPT>
    
    <!--
    Damit das Script das aktuelle Datum einstellt, müssen Sie den den Body-
    Tag der Web-Seite um den Parameter onload="SetToToday('FirstSelect');" 
    erweitern.
    //-->
    
    <BODY onload="SetToToday('FirstSelect');" bgcolor="cccc99"><br><br>
    <div align="center">
    <h3>Datumsauswahl</h3>
    <br>
    <p>Die einfachste M&ouml;glichkeit ein Datum per Formular abzufragen, ist
     die Vorgabe von Tag, Monat und Jahr in einem Men&uuml;.</p>
    
    <p>Noch bequemer wird's, wenn Sie per Script zugleich das aktuelle Datum vorgeben.</p>
    <br>
    
    
    <!--
    Das unten stehende Formular enthält alle Modifikationen, damit einen <p>
    Datumsauswahl angezeigt und mit dem aktuellen Datum versehen wird. <P>
    Am besten kopieren Sie das komplette Formular inklusive der beiden Form-<p>
    Tags in Ihre Homepage. Selbstverständlich können Sie anschließend weitere Formularfelder einfügen.
    
    //-->
    
    <FORM name="Form1">
    
    <SELECT name="FirstSelectDay">
            <OPTION>1<OPTION>2<OPTION>3
            <OPTION>4<OPTION>5<OPTION>6
            <OPTION>7<OPTION>8<OPTION>9<OPTION>10
            <OPTION>11<OPTION>12<OPTION>13<OPTION>14
            <OPTION>15<OPTION>16<OPTION>17<OPTION>18
            <OPTION>19<OPTION>20<OPTION>21<OPTION>22
            <OPTION>23<OPTION>24<OPTION>25<OPTION>26
            <OPTION>27<OPTION>28<OPTION>29<OPTION>30
            <OPTION>31
    </SELECT>
    <SELECT name="FirstSelectMonth" onchange="ChangeOptionDays('FirstSelect')">
            <OPTION>Jan<OPTION>Feb
            <OPTION>Mar<OPTION>Apr
            <OPTION>May<OPTION>Jun
            <OPTION>Jul<OPTION>Aug
            <OPTION>Sep<OPTION>Oct
            <OPTION>Nov<OPTION>Dec
    </SELECT>
    <SELECT name="FirstSelectYear" onchange="ChangeOptionDays('FirstSelect')">
            <OPTION>2001<OPTION>2002<OPTION>2003<OPTION>2004
    <OPTION>2005<OPTION>2006<OPTION>2007<OPTION>2008
    <OPTION>2009<OPTION>2010<OPTION>2011<OPTION>2012
    <OPTION>2013<OPTION>2014<OPTION>2015<OPTION>2016
    <OPTION>2017<OPTION>2018<OPTION>2019<OPTION>2020
    
    </SELECT>
    
    </FORM>
    </div>
    </body>
    </html>[/php]
    EDIT:
    TobiaZ: Umget
    Zuletzt geändert von G_J_1; 16.05.2004, 20:20.

  • #2
    Wenn ich jetzt aber in dem Formular nocheinmal die 3 gleichen Felder einfüge ( Weil ich Anfangs und Enddatum eingeben möchte) funktioniert es bei denen nicht.
    Was muss ich da ändern?
    1. umbrich deinen beitrag! bitte!
    2. benutze die [php ] und die [code ] tags!. bitte!

    3. spontan würd ich sagen, duu mußt alle vorhommen von First( ...) durch Second etc. ersetzen.
    Code:
    <SELECT name="FirstSelectMonth" onchange="ChangeOptionDays('FirstSelect')">
    Code:
    <SELECT name="SecondSelectMonth" onchange="ChangeOptionDays('SecondSelect')">
    aber ohne 1 & 2 wirds schwierig.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      wenn ich das richtig verstehe, brauch ich nur bei body nocheinmal :
      Code:
      [php]<BODY onload="SetToToday('FirstSelect');" onload="SetToToday('SecondSelect');">[/php]
      einfügen,
      oder muss ich das nacheinander schreiben:
      Code:
      [php]
      onload="SetToToday('FirstSelect');SetToToday('SecondSelect');"[/php]

      wenn die 2ten 3 Felder SecondSelectDay,SecondSelectMonth usw. heißen?
      Zuletzt geändert von G_J_1; 15.05.2004, 15:51.

      Kommentar


      • #4
        wenn ich das richtig verstehe, brauch ich nur bei body nocheinmal :
        die zweite version.

        und du mußt die felder erzeugen
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Besten Dank! Es funktioniert!

          Eine Frage hab ich noch:

          Code:
          [php]
          Now = new Date();
          NowDay = Now.getDate();
          NowMonth = Now.getMonth();
          NowYear = Now.getYear();
          [/php]
          Wiso gehört bei NowDay= : Now.getDate() und nicht Now.getDay()?

          Zuletzt geändert von G_J_1; 16.05.2004, 20:25.

          Kommentar


          • #6
            Wiso gehört bei NowDay= : Now.getDate() und nicht Now.getDay()?
            http://selfhtml.teamone.de/javascrip...e.htm#get_date
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar

            Lädt...
            X