Avatar billede lester_dk Nybegynder
02. december 2002 - 14:36 Der er 9 kommentarer og
1 løsning

Se om dato 1 er mindre end dato 2 inden submit af form

bruger følgende javascript til at validere min form.... den tjekker for tomme felter.

Men der er også en startdato og en slutdato, hvor den skal se på om startdato ligger før slutdato....  hvordan gøres dette som udvidelse af scriptet nedenfor. datoformat er dd-mm-yyyy

function Checkform(thisform) {
    // Startværdier
    strError = 'Der opstod følgende fejl:\n';
    intError = 0;

    //Check Email,  er den tom
    if (thisform.f_titel.value == "")
    {
    strError = strError + '- Titel mangler.\n'
    intError = 1;
    thisform.f_titel.focus();
    }
   
    if (thisform.f_content.value == "")
    {
    strError = strError + '- Din nyhed mangler indhold.'
    intError = 1;
    thisform.f_content.focus();
    }
    if (function testdate(thisform.f_startdato.dato.value,thisform.f_slutdato.dato.value) == false)
        {strError = strError + '- Datobøvl.'
    intError = 1;
    //thisform.f_content.focus();
       
        }
    if (intError == 1) {
    alert(strError)
    return false; }
   
    return true;
           
}
Avatar billede lester_dk Nybegynder
02. december 2002 - 14:37 #1
doh.... 
function Checkform(thisform) {
    // Startværdier
    strError = 'Der opstod følgende fejl:\n';
    intError = 0;
    //end_date = thisform.f_slutdato.dato.value;
   
    //Check Email,  er den tom
    if (thisform.f_titel.value == "")
    {
    strError = strError + '- Titel mangler.\n'
    intError = 1;
    thisform.f_titel.focus();
    }
   
    if (thisform.f_content.value == "")
    {
    strError = strError + '- Din nyhed mangler indhold.'
    intError = 1;
    thisform.f_content.focus();
    }
    if (function testdate(thisform.f_startdato.dato.value,thisform.f_slutdato.dato.value) == false)
        {strError = strError + '- Datobøvl.'
    intError = 1;
    //thisform.f_content.focus();
       
        }
    if (intError == 1) {
    alert(strError)
    return false; }
   
    return true;
           
}

Er bare en test jeg selv prøvede... virker på ingen måde.
Avatar billede lester_dk Nybegynder
02. december 2002 - 14:38 #2
if (function testdate(thisform.f_startdato.dato.value,thisform.f_slutdato.dato.value) == false)
        {strError = strError + '- Datobøvl.'
    intError = 1;
    //thisform.f_content.focus();

}

Sorry... det er det her der skal fjernes....
Avatar billede Slettet bruger
02. december 2002 - 17:36 #3
function Checkform(thisform) {
    // Startværdier
    strError = 'Der opstod følgende fejl:\n';
    intError = 0;
    //end_date = thisform.f_slutdato.dato.value;
   
    //Check Email,  er den tom
    if (thisform.f_titel.value == "")
    {
    strError = strError + '- Titel mangler.\n'
    intError = 1;
    thisform.f_titel.focus();
    }
   
    if (thisform.f_content.value == "")
    {
    strError = strError + '- Din nyhed mangler indhold.'
    intError = 1;
    thisform.f_content.focus();
    }
    regexp = /^\d{2}-\d{2}-\d{4}$/;
    if (!thisform.f_startdato.value.match(regexp)) {
strError = strError + '- Start-datoen er forkert indtastet.'
    intError = 1;
    thisform.f_startdato.focus();
}
    if (!thisform.f_slutdato.value.match(regexp)) {
strError = strError + '- Slut-datoen er forkert indtastet.'
    intError = 1;
    thisform.f_startdato.focus();
}

if (intError != 1) {
temp1 = thisform.f_startdato.value.split("-");
dato1 = new Date(parseInt(temp1[2], 10), parseInt(temp1[1], 10), parseInt(temp1[0], 10));
temp2 = thisform.f_slutdato.value.split("-");
dato2 = new Date(parseInt(temp2[2], 10), parseInt(temp2[1], 10), parseInt(temp2[0], 10));
if (dato2.getTime() >= dato1.getTime()) {
strError = strError + '- Slut-datoen skal være efter start-datoen.'
    intError = 1;
    thisform.f_slutdato.focus();
}
}
        if (intError == 1) {
    alert(strError)
    return false; }
   
    return true;
           
}
Avatar billede Slettet bruger
02. december 2002 - 17:37 #4
Forudsat at du har to felter, "f_startdato" og "f_slutdato" i din form.
Avatar billede lester_dk Nybegynder
03. december 2002 - 09:03 #5
Det har jeg jo så.... og det virker.... (laver ihvertfald ikke fejl.)

Men den er ligeglad med om startdato sammenfalder med slutdato eller ligger efter. Skal lige nævnes at jeg får datoerne ved startdato response.write (date)
sludato response.write (date+30).

I min access-database er mine de to felter sat til...  Mellemlangt datoformat, inputmaske: 00-00-0000;0;*

Håber du aner hvad jeg så skal gøre....
Avatar billede Slettet bruger
03. december 2002 - 13:31 #6
Jeg fatter ikke det sidste. Vil du ikke bare have en client-side validering af, om en dato er større end en anden?

Smid et link under alle omstændigheder.
Avatar billede lester_dk Nybegynder
03. december 2002 - 13:52 #7
jo en client-side validering.... men indholdet i de to felter f_startdato og f_slutdato kommer via (date)... det skal så gemmes bagefter... men det burde ik' have noget med scriptet at gøre....  kan se det virker nu... men ikke korrekt den mener at start 03-12-2002  og slut 02-01-2003 ikke er gyldig... udskriver slutdatoen skal være efter startdato. Du skal nok få dine point, da jeg mener det er det rigtige svar...... men der er noget der ik' helt spiller...
Avatar billede Slettet bruger
03. december 2002 - 13:57 #8
Denne linje:

if (dato2.getTime() >= dato1.getTime()) {

... skal se således ud:

if (dato1.getTime() >= dato2.getTime()) {
Avatar billede lester_dk Nybegynder
03. december 2002 - 15:22 #9
det virker som det skal nu.... manglede lige at give skriverettigheder på server .... DOH....

Der er points til dig phoenixv... smid lige et svar...
Avatar billede Slettet bruger
03. december 2002 - 15:38 #10
Svar
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