Avatar billede lubbers Nybegynder
24. marts 2001 - 21:17 Der er 2 kommentarer og
1 løsning

datotjek

Jeg skal tjekke en dato fra et formularfelt. Dato må ikke være mindre end dags dato og ikke større end dags dato+7.
Mit problem ligger i at den opfatter input fra formularfelt som en tekst.
På forhånd tak for hjælpen
Avatar billede ulliware Nybegynder
25. marts 2001 - 10:43 #1
Har du prøvet at konvertere strengen og putte den i en variabel a typen date?
Avatar billede jakoba Nybegynder
25. marts 2001 - 17:09 #2
Du skal have konverteret fra en tekststreng til en dato.
Hvordan du gør det kommer an på hvilket format dastoen skrives i:
25/3-2001  alm danske
25-3-2001
25-03-01
25/03/01
25 marts 2001
...
3-25-2001  alm amerikanske
03-25-01
march 25 2001
...

Så for at få noget der har en chance for at virke bør du først og fremmes fortælle brugeren hvilket format han skal skrive datoen i:

instast dato  dd-mm-åååå <input type=\'text\' size=10>
vil ofte (men ikke altid) få brugeren til at indtaste dato i det format.

en sikrere (men knap så behagelig måde er at bruge flere inputfelter:
dag: <input type=\'text\' name=\'day\' size=2>
måned: <input type=\'text\' name=\'month\' size=2>
år: <input type=\'text\' name=\'year\' size=4><br>
vil næsten altid få folk til at udfylde de tre felter korrekt, men der skal nok være nogen der ikke kan hitte ud af det (skrive bogstaver i månedsfeltet, ombytte dag og måned, skrive \"iår\" istedet for et årstal, indtaste 31\'te februar).

I det aktuelle eksempel vil det sikreste nok være at lave en selectboks hvor brugeren så kan vælge een af de næste 7 dage:

<script language=\'javascript\'> <!--

function fillSelect() {
  var nu = new Date();          //datoen lige her og nu
  var sb = document.forms.fs.selbox;  // select boksen
  for ( var i=1; 7>=i; i++ ) {
    sb[i].text = \"\"+nu.getDate() +\"-\" +(nu.getMonth()+1)+nu.getFullYear();
    nu = nu + 24*60*60*1000;      // gå en dag frem
  }
}; //end fillSelect()

function brugDato ( sel )
  if ( sel.selectedIndex = 0 )
    return false;
  // sel[sel.selectedIndex].value  er 0..6. (hvor mange dage fra nu)
  // sel[sel.selectedIndex].text  er (den tekste vi selv skrev ovenfor)
  return true;
}; //end brugDato( select Object )
// --> </script>
</head>

<body  onload=\'fillSelect\'>

<form name=\'fs\'>
<select name=\'selbox\' onchange=\"brugDato(this)\">
  <option selected value=-1>vælg en dato</option>
  <option value=0>---</option>
  <option value=1>---</option>
  <option value=2>---</option>
  <option value=3>---</option>
  <option value=4>---</option>
  <option value=5>---</option>
  <option value=6>---</option>
</select>
</form>

mvh JakobA
Avatar billede jakoba Nybegynder
25. marts 2001 - 17:12 #3
dobbelt lighedstegn når man sammenligner:
  if ( sel.selectedIndex == 0 )
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