Avatar billede teamdev Novice
19. oktober 2006 - 13:47 Der er 9 kommentarer og
1 løsning

Datovalidering igen

Hejsa

Har kigget i et utal af andre svar men synes ikke at kunne få diverse scripts til datovalidering til at virke.
-------------------------

<script Language="JavaScript">
<!--
function CheckBlank()
{
if (Repform.FejlDato.value == "")
{
alert("Dato for fejl skal udfyldes");
Repform.FejlDato.focus();
return (false);
}
if (Repform.RepSlut.value == "")
{
alert("Dato for afslutning af reparation skal udfyldes");
Repform.RepSlut.focus();
return (false);
}
if (Repform.EjerKlage.value == "")
{
alert("Ejers klage skal udfyldes");
Repform.EjerKlage.focus();

return (false);
}
return (true);
-->
</script>

---------------------
<form name="Repform" action="regrep.asp" method="post" onsubmit="return CheckBlank();">
<input type="text" name="FejlDato" id="FejlDato" size="10" maxlength="10">
<input type="text" name="RepSlut" id="FejlDato" size="10" maxlength="10">
<textarea cols="26" rows="4" name="EjerKlage" id="EjerKlage" style="background: transparent;"></textarea>

<input type="submit" value="registrer">

---------------------
Altså :
I ovenstående tjekkes der kun på om felterne er blanke. hvis de er får man en alert i hovedet.
Det er fint nok til textarea, men jeg har brug for at der tjekkes på om det er korrekt datoformat i begge datofelter.

Nogen der kan komme med en hurtig løsning jeg bare kan smide ind i ovenstående javascript ??

Takker og bukker på forhånd
Avatar billede fennec Nybegynder
19. oktober 2006 - 13:56 #1
Har ikke et JS tjek til dig, men vil bare lige nævne at du ALTID skal validere dine data serverside også. JS kan nemlig slåes fra af brugeres.

I ASP kan du bruge isDate() funktionen.
Avatar billede teamdev Novice
19. oktober 2006 - 14:03 #2
OK point taken :-) har du en stump kode ? går ud fra at jeg skal tjekke dato på side2 og hvis den er ugyldig smide bruger tilbage til side1 ?
Avatar billede olebole Juniormester
19. oktober 2006 - 14:04 #3
<ole>

Med tre select-elementer (dd, mm og yyyy), kommer brugeren ikke til at skrive i forkert format - og du kan nøjes med at validere på serveren  ;o)

/mvh
</bole>
Avatar billede teamdev Novice
19. oktober 2006 - 14:13 #4
Har tænkt på den med de 3 select statements men så risikerer jeg at bruger får valgt 31 02 2017
det er jo ikke en gyldig dato.
Avatar billede - Nybegynder
19. oktober 2006 - 14:31 #5
if(!isDate(Repform.FejlDato.value))
{
alert("Dato for fejl skal udfyldes");
Repform.FejlDato.focus();
return (false);
}
if(!isDate(Repform.RepSlut.value))
{
alert("Dato for afslutning af reparation skal udfyldes");
Repform.RepSlut.focus();
return (false);
}
Avatar billede teamdev Novice
19. oktober 2006 - 14:41 #6
Virker ikke får en serverfejl, siden submittes altså og forsøger at indsætte tom data i datofelt
Avatar billede fennec Nybegynder
19. oktober 2006 - 14:51 #7
Der findes ingen isDate i JS, men jeg har lige lavet en:

function isDate(fDate)
{
  dato = fDate
  d = parseInt(dato.substring(0,2))
  m = parseInt(dato.substring(3,5))
  y = parseInt(dato.substring(6,10))
  var day = new Date(y,m-1,d);
  alert(day.getDate())
  return (day.getDate()==d);
}

I ASP skal du bare bruge den indbygget:
if isDate(request.form("datoFelt")) then
  response.write "OK"
else
  response.write "Forkert dato"
end if
Avatar billede olebole Juniormester
19. oktober 2006 - 14:59 #8
"men så risikerer jeg at bruger får valgt 31 02 2017 det er jo ikke en gyldig dato"

- ja, det er klart. Sandsynligheden for, at en bruger vælger en invalid dato, er dog forsvindende lille i forhold til faren for at skrive datoen i forkert format.

Hvis du bruger tre selects, vil din server-validering formodentlig kun sende brugeren tilbage til formen en brøkdel af de gange, det vil ske med en alm. tekst-boks ... og man jo ligesågodt gøre tingene så brugervenlige som muligt  ;o)
Avatar billede teamdev Novice
19. oktober 2006 - 15:13 #9
fennec smid et svar :-) tjekker på om formularens felter er datoer som du beskrev. og det virker.
endte så med noget der ikke var javascript , men det er så også fint
Avatar billede fennec Nybegynder
19. oktober 2006 - 15:20 #10
Funktionen har brug for lidt ekstra tjek, men det må så blive en anden gang.

.o) <-- One Eyed Jack
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