Avatar billede carpediem Nybegynder
08. august 2001 - 16:55 Der er 3 kommentarer og
1 løsning

dagsdato ved klik

Jeg har et script der via et klik på et link skulle indsætte dags dato i nogle dropdownbokse. Det virker fint for dag og måned, men ikke for året. Hvad er der i vejen?

<script language=\"javascript\">
function DagsDatoStart(d,m,y)
{
    document.formular.DatoDay.selectedIndex = d;
    document.formular.DatoMonth.selectedIndex = m;
    document.formular.DatoYear.selectedIndex = y;
}
</script>

<A HREF=\"java script:DagsDatoStart(8,8,2001);\" CLASS=\"Link\" TITLE=\"Dags dato\">Starttidspunkt</A>:</TD>
<SELECT NAME=\"DatoDay\">
    <OPTION VALUE=\"\"></OPTION>
    <%
    For i = 1 To 31
        Response.Write \"<OPTION VALUE=\"\"\" & i & \"\"\">\" & i & \"</OPTION>\"
    Next   
    %>
    </SELECT>-<SELECT NAME=\"DatoMonth\">
    <OPTION VALUE=\"\"></OPTION>
    <%
    For i = 1 To 12
        Response.Write \"<OPTION VALUE=\"\"\" & i & \"\"\">\" & i & \"</OPTION>\"
    Next
    %>
    </SELECT>-<SELECT NAME=\"DatoYear\">
    <OPTION VALUE=\"\"></OPTION>
    <%
    y = DatePart(\"yyyy\", Date, 0, 0)
    For i = -1 To 5
        Response.Write \"<OPTION VALUE=\"\"\" & y+i & \"\"\">\" & y+i & \"</OPTION>\"
    Next
    %>
</SELECT>
Avatar billede jakoba Nybegynder
08. august 2001 - 17:16 #1
i div ASP laver du 7 valgbare år, fra forrige år og til om 5 år.
de bliver indexeret fra 0 og op. så for at vælge år 2000 skal du give y værdien 0-

så skriv sidst linie om til:
    document.formular.DatoYear.selectedIndex = y-2000;

såvidt jeg kan se er din dato ogå gal, vælger den ikke den niende idag hvor det er den ottende?
    document.formular.DatoDay.selectedIndex = d-1;

Desværre vil den første rettelse kun du resten af dette år. i år 2002 skal der stå:
    document.formular.DatoYear.selectedIndex = y-2001;
Avatar billede jakoba Nybegynder
08. august 2001 - 17:22 #2
en mere endelig løsning ville være at lade ASP generere det rigtige offset:

    y = DatePart(\"yyyy\", Date, 0, 0)
    response.Write \"<script>window.yForste = \"\"\" & (y-1) & \"\"\";</script>\"
    For i = -1 To 5
        Response.Write \"<OPTION VALUE=\"\"\" & y+i & \"\"\">\" & y+i & \"</OPTION>\"
    Next

og så skrive sidste linie som:
    document.formular.DatoYear.selectedIndex = y-yForste;

mvh JakobA
Avatar billede carpediem Nybegynder
08. august 2001 - 17:32 #3
Nej den vælger fint  8 både i dag og måned
Avatar billede carpediem Nybegynder
08. august 2001 - 17:42 #4
jakoba>> Du får pointene fordi du ledte mig på sporet med at den ikke bruger value, men index til at vælge den aktive.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester