Avatar billede hundevennen Nybegynder
09. november 2009 - 10:57 Der er 5 kommentarer og
1 løsning

hjælp til valideringsscript

jeg har nedenstående til validering af et formfelt, men vil gerne ha koblet flere formfelter på et til en dato og et til klokkeslet.
Dato skal være formatet dd-mm-åå og klokkeslet skal være format ttmm.

Function tjeksize1()
    {
    if(!document.sampleform.jnr.value.match(/^\d{4}-\d{5}-\d{5}-\d{2}$/))
        {
        alert("Jnr. er forkert (xxxx-xxxxx-xxxxx-xx) om igen..")
        return false
        }
    return true
    }

<form name=sampleform action="Opretpost.asp" method=post onsubmit="return tjeksize1()">
Avatar billede tjens Nybegynder
09. november 2009 - 23:07 #1
Hvor fint skal det være?

Her er et simpelt eksempel i samme stil som dit eget.
Det klarer ikke 30 eller 31 dage, skudår og lignende.
Men måned kan ikke være over 12 og dag kan ikke være over 31, så det er et udmærket grundtjek.

function tjekall()
    {
    if(!document.sampleform.jnr.value.match(/^\d{4}-\d{5}-\d{5}-\d{2}$/))
        {
            alert("Jnr. er forkert (xxxx-xxxxx-xxxxx-xx) om igen..")
            return false;
        }
    if ( !document.sampleform.dato.value.match(/^(0[1-9]|[12]\d|3[01])-(0[1-9]|1[0-2])-\d{2}$/))
        {
            alert("Fejl i dato:  (DD-MM-YY)");
            return false;
        }
    return true;
    }
10. november 2009 - 07:14 #2
Jeg er i gang med at laere mig selv php/css/mysql og paa det sidste ogsaa javascript.  Jeg har fundet god oevelse i at laese spoergsmaal her paa eksperten og proevet at finde en loesning, oftest ved hjaelp af meget googlen og endnu mere "trial and error."  Jeg mener at have fundet en loesning, foreloebig i php, paa dit spoergsmaal.  Den bruger din regex for jnr uforandret og saa checker den ved hjaelp af checkdate() om det er en valid dato, altsaa inklusiv skudaar og lignende, og til sidst checker den om timer og minutter ligger indenfor de tilladte vaerdier.

Det har jeg vaeret laenge om (jeg startede omtrent da du oprettede spoergsmaalet,) men jeg har laert meget.  Jeg skal nu proeve om jeg ogsaa kan lave det i javascript.

Jeg lavede en lille hjemmeside, http://christianjorgensen.be/hundevennen.php, hvor du kan se og afproeve resultatet.  Her er koden:

<html>
<head>
  <title></title>
</head>

<body>

<form name=sampleform action="<?print $_SERVER["PHP_SELF"];?>" method=post>
<label for="jrn">Fyld ind journal nummer </label><input type="text" name="jrn" id="jrn" /><br/>
<label for="dato">Fyld ind dato, format dd-mm-aa </label><input type="text" name="dato" id="dato"/><br/>
<label for="tid">Fyld ind tidspunkt, format ttmm </label><input type="text" name="tid" id="tid"/><br/>
<input type="submit" name="submit"/>
</form>

<?
if($_POST['submit'])
{
  if(preg_match('/^\d{4}-\d{5}-\d{5}-\d{2}$/', $_POST['jrn']))
    echo "Journal rigtigt<br/>";
  else echo "Journal forkert<br/>";
  if(preg_match('/^\d{2}-\d{2}-\d{2}/', $_POST['dato']))
  {
    $dato = split("-", $_POST['dato']);
    if($dato[2] > 20) $dato[2] += 1900;
    else $dato[2] += 2000;
    if(checkdate($dato[1], $dato[0], $dato[2]))
    echo "valid dato! <br/>";
    else echo "forkert dato! <br/>";
  }
  $tid = strval($_POST['tid']);
  $time = substr($tid, 0,2);
  $minut = substr($tid, 2, 2);
  if($time >= "00" && $time <= "24" && $minut >= '00' && $minut <= '60') echo "Tidspunkt correct!<br/>";
  else echo "Tidspunkt forkert!<br/>";
}
?>
10. november 2009 - 07:58 #3
Hvad jeg ville have sagt er at ved at vaelge datoformat som ddmmaa skal man gaette paa i hvilet aarhundrede det er.  Jeg valgte 20 som skillelinie mellem hvorvidt det var i det forige eller i dette aarhundrede.  Hvorfor ikke vaelge ddmmaaaa?
Avatar billede hundevennen Nybegynder
10. november 2009 - 11:24 #4
tjens - det virker fint - hvis et felt nu bare skal udfyldes hva så? altså det må ikke være tomt??
Avatar billede hundevennen Nybegynder
10. november 2009 - 12:08 #5
Tjens - fandt selv ud af det - tak for hjælpen og læg et svar
Avatar billede tjens Nybegynder
10. november 2009 - 15:11 #6
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