Avatar billede mhj28 Nybegynder
08. november 2005 - 14:52 Der er 2 kommentarer

Gæt dato validering

Jeg har et input felt hvor brugeren skal taste en dato i formatet dd.mm.yyyy men han skal også bare kunne taste mm.yyyy eller yyyy eller yy også skal scriptet selv udfylde resten med 01.01.yyyy eller  01.01.20yy

altså hvis han skriver "2005"
skal feltet udfyldes med "01.01.2005"

hvis han skriver "05"
skal feltet udfyldes med "01.01.2005"

hvis han skriver "97"
skal feltet udfyldes med "01.01.1997"

hvis han skriver "12.05"
skal feltet udfyldes med "01.12.2005"

osv.
Avatar billede roenving Novice
08. november 2005 - 15:09 #1
F.eks. sådan:

<script language="javascript" type="text/javascript">
function formatDate(elm){
  var dato = ("01.01." + elm.value).split("."),nydato = new Array();
  nydato[0] = dato[dato.length-3];
  nydato[1] = dato[dato.length-2];
  nydato[2] = dato[dato.length-1];
  if(nydato[2].length == 2)
    nydato[2] = ((+nydato[2] > 70) ? "19" : "20") + nydato[2];
  elm.value = nydato.join(".");
}
</script>

<input onchange="formatDate(this);">

-- så formatteres feltet, når man går videre !-)

-- den tester dog ikke indtastningens validitet iøvrigt, så skøre ting kan forekomme !-)
Avatar billede mhj28 Nybegynder
08. november 2005 - 15:41 #2
Yes det virker ret godt hvis man taster en gyldig dato ind, har lige tilføjet lidt som erstater mellemrum og - og / med punktummer... Men kan man lave et check på om det er en gyldig dato man har tastet ind? eller det man får ud af scriptet? får hvis man skriver 13.05 giver scriptet 01.13.2005 tilbage som jo ikke er en gyldig dato! kan man evt. runde det ned til 01.12.2005?

function formatDate(elm){
  var reg = /[ \-\/]/g,tmp;
  var date = elm.value.replace(reg, ".");//erstat alle - og mellemrum med punktummer
  var dato = ("01.01." + date).split("."),nydato = new Array();
  nydato[0] = dato[dato.length-3];
  nydato[1] = dato[dato.length-2];
  nydato[2] = dato[dato.length-1];
  if(nydato[2].length == 2)
    nydato[2] = ((+nydato[2] > 70) ? "19" : "20") + nydato[2];
  elm.value = nydato.join(".");
}
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