Avatar billede juks Novice
13. juni 2005 - 06:48 Der er 7 kommentarer og
1 løsning

input mask på date og time

Hej er det ikke muligt lave en input mask på de her felter


<tr>
      <td>Start dato(YYYY-MM-DD)</td>
      <td><input type="text" name="date_start" size=10></td>
      <td>Start tidspunkt (hr:mn)</td>
      <td><input type="text" name="time_start" size=5></td>
    </tr>
Avatar billede busschou Praktikant
13. juni 2005 - 06:53 #1
Jo men ikke sådan direkte i selve HTML koden
Så skal du enten lave en validering Client side i javascript og/eller Server side i PHP
Dvs hvor du løber hele feltets værdi igennem for at se om det overholder typen.
Til begge formål kan du benytte regulære udtryk , reg.exp
Avatar billede juks Novice
13. juni 2005 - 07:12 #2
der tabte du mig lige har et eks.
Avatar billede busschou Praktikant
13. juni 2005 - 07:22 #3
ikke lige på stående fod, jeg er ikke selv super haj til reg.exp.
Men hvis du kigger i reg.exp kategorien så finder du et hav af sådanne valideringer.
Du kan alternativt i php tjekke det når formen postes
Så kan du hente feltet date_start, splitte det efter "-", og tjekke om det array du får er tre lang, samt at alle tre er tal og det første er 4 langt mens de to sidste er 2 lange...osv osv, og så give fejl hvis det ikke er opfyldt
Avatar billede busschou Praktikant
13. juni 2005 - 10:08 #4
Har kigget lidt på http://dk2.php.net/manual/da/function.preg-match.php
Du må kunne gøre sådan her når du henter din form data
--
<?
if (preg_match("/\b\d\d\d\d-\d\d-\d\d\b/i", $_POST['date_start'])) {
  echo "OK";
} else {
  echo "IKKE OK";
}
if (preg_match("/\b\d\d:\d\d\b/i", $_POST['time_start'])) {
  echo "OK";
} else {
  echo "IKKE OK";
}
?>
Avatar billede busschou Praktikant
13. juni 2005 - 10:09 #5
\d betyder at den tjekker om det er en decimal (0-9)
Det betyder at ovenstående vil tjekke for om dine felter er tal og om de har - og : imellem som krævet.
Dog vil det også sige at det er muligt at lave datoen, 0101-00-99 og klokken 99:78
Hvis du også vil have tjek på det så skal det laves lidt om
Avatar billede busschou Praktikant
13. juni 2005 - 10:27 #6
Så kan man lege lidt med dem
if (preg_match("/\b\b20\d[5-9]-([1-9]|1[0-2])-([0-9]|[1-2][0-9]|30|31)\b\b/i", $_POST['date_start']))
Det burde sørge for at årstallet er mellem 2005 og 2099, og at måneden er mellem 1 og 12 samt at dagen er mellem 1 og 31
For klokken kunne man tilsvarende gøre
if (preg_match("/\b([0-1][0-9]|2[1-3]):[0-5][0-9]\b/i", $_POST['time_start'])) {
Som burde sørge for at der accepteres timer fra 00 til 23 og minutter fra 00 til 59
Avatar billede juks Novice
02. december 2005 - 08:55 #7
smider du et svar
Avatar billede juks Novice
13. december 2007 - 10:50 #8
luk
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