Avatar billede phpnewbee Nybegynder
02. september 2000 - 15:29 Der er 5 kommentarer

Omskriv denne dato validering - please!

Jeg har brug for en dato validering til min form.

Datoen SKAL skrives i formatet:  MM-DD-ÅÅ
(Måned bindestreg dag bindestreg år)
Bemærk at året kun skal angives med 2 tal
og at måned kommer før dag.

Jeg har fremskaffet denne kodestump, så jeg
håber at Ole eller en anden meget venlig sjæl
har lyst til at hjælpe mig med denne omskrivning.


// Check if Field contains a valid date of the form dd/mm/yy
  function IsValidDate(Field)
    {
  if (!ContainsSomething(Field))
      {
      return false;
      }
    var indate=Field.value;
    var sdate = indate.split(\"/\")
 
    var chkDate = new Date(Date.parse(indate))

    var cmpDate = (chkDate.getMonth()+1)+
                  \"/\"+(chkDate.getDate())+
                  \"/\"+(chkDate.getYear())
    var indate2 = (Math.abs(sdate[0]))+\"/\"+(
                  Math.abs(sdate[1]))+
                  \"/\"+(Math.abs(sdate[2]))
    if (indate2 != cmpDate || cmpDate == \"NaN/NaN/NaN\")
      {
      return false
      }
    else
      {
      return true;
      }   
    }
Avatar billede erikjacobsen Ekspert
02. september 2000 - 19:48 #1
Jeg har følgende stump, der vist er lavet om til det du ønsker. Du skal skrive dato måned og år
med 2 cifre. Sig lige til hvis du tillader 1-1-00.

<html>
<head>
<title>Validate Date</title>
<script language=\"JavaScript\">
<!--
  function validatedate(f) {
    if (f.dato.value==\"\") {
      alert(\"Du skal skrive en dato\");
      return false;
    }
    if (f.dato.value.length!=8) {
      alert(\"Datoen skal skrives på formen MM-DD-ÅÅ\");
return false;
    }
    if (f.dato.value.charAt(2)!=\"-\" || f.dato.value.charAt(5)!=\"-\") {
      alert(\"Datoen skal skrives på formen MM-DD-ÅÅ\");
      return false;
    }
    var mm=parseInt(f.dato.value.substring(0,2));
    var dd=parseInt(f.dato.value.substring(3,5));
    var yy=parseInt(f.dato.value.substring(6,8));
    if (mm<1 || mm>12 || dd<1 || dd>31) {
      alert(\"Ulovlig dato\");
      return false;
    }
    if (yy>=70) { yyyy=yy+1900 } else { yyyy=yy+2000; }
    d=new Date(yyyy,mm-1,dd,0,0,0,0);
    if (d.getFullYear()!=yyyy || (d.getMonth()+1)!=mm || d.getDate()!=dd) {
      alert(\"Ulovlig dato2\");
      return false;
    }
    return true;
  }
//-->
</script></head>

<body>

<form method=post action=\"\" name=\"eksform\" onsubmit=\"return validatedate(document.eksform)\">
<input type=\"text\" name=\"dato\"><br>
<input type=\"submit\">
</form>

</body>
</html>
Avatar billede phpnewbee Nybegynder
05. september 2000 - 11:58 #2
Jeg tillader IKKE 1-1-00

Og det skal også bemærkes at feltet
IKKE er obligatorisk, så der skal ikke være
en Alert hvis feltet er tomt.
Avatar billede sotec Nybegynder
06. september 2000 - 11:24 #3
Øh Erik, er du der?
Avatar billede stoffer Nybegynder
28. maj 2001 - 15:11 #4
Denne her er ikke 100% skudsikker. Kan tage fx. 00-00-00 og 00-39-00, hvilket jo burde være ulovligt. men formatet kan man ikke undgå dvs. xx-xx-xx. Desuden kan man ikke skrive mere end 12 i måned. Og den tjekker altid på tal.

her:

function funcCheckMe(strValue,strPattern) {

    return strPattern.test(strValue)

}
alert(funcCheckMe(\"11-00-20\",/^[0-1]{1}[0-2]{1}-[0-3]{1}[0-9]{1}-[0-9]{2}$/i))
Avatar billede stoffer Nybegynder
28. maj 2001 - 15:12 #5
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