Avatar billede dengalepose.dk Nybegynder
29. oktober 2001 - 17:19 Der er 10 kommentarer og
2 løsninger

Gæstebog i javascript

Findes der et sted, hvor jeg kan se hele kilden/scriptet til en gæstebog inkl. validering af de enkelte felter? Der skal være validering af email, telefon og fødselsdato...

Det skal som kategorien hentyder være i javascript ;-)

DGP
Avatar billede Slettet bruger
29. oktober 2001 - 17:25 #1
Du kan ikke lave en gæstebog i JavaScript.. :)
Avatar billede dengalepose.dk Nybegynder
29. oktober 2001 - 17:32 #2
Det er selvfølgelig i html, og javascript skal bruges til at validere felterne.

Der skal da bare bruges :
form action=\"http://adressen.php3 + method=\"POST\"

DGP
Avatar billede jakoba Nybegynder
29. oktober 2001 - 17:32 #3
Alt hvad du laver i javascript forsvinder igen i det øjeblik brugeren klikker hen på en anden side.
For at huske det folk skriver i gæstebogen er du nødt til at have adgang til noget serverside programmeringssprog der kan gemme det på serveren.
Eller du kan bruge en af de mange gratis gæstebøger man kan få hvor nogen andre lægger server til og husker for dig. (fx: www.htmlgear.com).

mvh JakobA
Avatar billede Slettet bruger
29. oktober 2001 - 17:35 #4
ok....:

<script language=\'javascript\'>

function valider (form) {

//test af fra
  if ( document.form1.fra.value.length > 0 ) {
      // alt ok han har skrevet noget
  } else {
      alert (\"Du skal indtaste dit navn.\");
      document.form1.fra.focus();
      return false;
  };
//slut test fra

// test feltet email
var testresults
var str=document.form1.email.value
var filter=/^.+@.+\\..{2,3}$/
if (filter.test(str)) {

}
else{
alert(\"Indtast venligst en gyldig E-mail adresse\")
    document.form1.email.focus();
      return false;
};
//slut test email

//test af besked
  if ( document.form1.besked.value.length > 0 ) {
      // alt ok han har skrevet noget
  } else {
      alert (\"Du skal indtaste en besked.\");
      document.form1.besked.focus();
      return false;
  };
//slut test besked

  return true;  // alle felter er ordentligt udfyldt
};

</script>
<p>Hvis du ønsker svar bedes du opgive din e-mail adresse.<br>
Vi bestræber os på at besvare alle e-mails indenfor 8 arbejdstimer.<br><br><br>
<form name=\"form1\" onSubmit=\"return valider(this)\" method=\"get\" action=\"kontakt.php\">
<p><table cellspacing=\"2\" cellpadding=\"2\" border=\"0\">
<input type=\"hidden\" name=\"send\" value=\"ok\">
<tr>
<td width=\"150\" align=\"right\">Dit navn:&nbsp;</td>
<td><input type=\"text\" name=\"fra\" size=\"15\" class=\"text\"></td>
</tr>
<tr>
<td width=\"150\" align=\"right\">Din E-mail:&nbsp;</td>
<td><input type=\"text\" name=\"email\" size=\"25\" class=\"text\"></td>
</tr>
<tr>
<td width=\"150\" align=\"right\" valign=\"top\">Besked:&nbsp;</td>
<td><textarea cols=\"30\" rows=\"7\" name=\"besked\" maxlength=\"160\" wrap=\"soft\"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td><td>
<input type=\"Image\" alt=\"Send\" src=\"images/send.gif\" border=\"0\">
</td>
</tr>
</form>
</table>

(Direkte kopieret fra en af mine sider)
Avatar billede dengalepose.dk Nybegynder
29. oktober 2001 - 17:39 #5
Den skal ikke bruges til noget på nettet - det er bare som \"inspiration\" til en skoleopgave... ;-)

Men jeg skal gennemgå hver enkelt linie, så jeg fatter det hele :)

DGP
Avatar billede dengalepose.dk Nybegynder
29. oktober 2001 - 17:46 #6
Tak indtil videre, men jeg mangler stadig validering af et telefonnummer og en fødselsdato.

Telefonnummeret skal være numerisk, men \"blanke\" og \"+\" er tilladte.

Fødselsdato : ddmmåååå validering af dato :
dd fra 1 - 31
mm fra 1 - 12
åååå fra 1900 - 1999

DGP

Ekstra point hvis disse findes... :-)
Avatar billede jakoba Nybegynder
29. oktober 2001 - 18:04 #7
Det store problem med validering er ikke at kassere det ugyldige, men at tillade ALLE de legitime indtastniger der kan forkomme i et felt.

Hvis du har prøvet at fylde din adresse i en amerikansk formular har du nok oplevet hvor svært det kan være at komme forbi feltet med zip-code (postnummer), de har 5 cifrede postnumre derovre. og de skriver pr default datoer som mm/dd åååå, det kan også give problemer.

eller for at blive ved postnumre. Skal svenskere og nordmænd have lov at skrive i den gæstebog? så skal postnummer kunne skrives som ss-dddd hvor ss er landekode og dddd er et 4-cifret tal.

internationale telefonnumre har også en landekode den skrives ofte foran et +, men også ofte i parentes forrest, begge del bør accepteres. og efter landekoden kan der så komme mellem 6 og 10 cifre for det indelandske telefonnr.

Det store arbejde er at definere hvilke formater du vil acceptere i hvilke felter. når det er gjort er det ret nemt at lave en test.

hvad vil du acceptere af telefonnumre og datoer?
Avatar billede dengalepose.dk Nybegynder
29. oktober 2001 - 18:18 #8
jakoba> Tak fordi du mindede om det gæve udland! :-)

Når det er med i overvejelserne vil jeg tillade op til 16 cifre, og \"+\" da det jo bruges i landekoder. Et blankt felt skal også tillades, da man god kan skrive +0045 86534728.

Med hensyn til postnumre behøver jeg ikke disse da der ikke skal være noget adressefelt.

DGP
Avatar billede dengalepose.dk Nybegynder
29. oktober 2001 - 18:22 #9
Datoformatet skal være eks. : 29.10.2001

Altså :

Dag fra  1 - 31

Måned fra 1 - 12

År fra 1870 - 2001 så kan alle vist være med, selv \"Den gamle mand fra Japan\" *g*
Avatar billede jakoba Nybegynder
29. oktober 2001 - 18:40 #10

    var fejl = false;

// teste dato  dd.mm.åååå
    var tx = document.formnavn.feltnavn.value
    if ( tx.test( /^\\d\\d.\\d\\d.\\d{4}$/ ) {
        var dag = parseInt( tx.substring(0,2), 10 );
        if ( dag < 1 || dag > 31 ) {
            alert( \"forkert månedsdag. gyldige værdier er 01..31\" );
            fejl = true;
        }
        var maaned = parseInt( tx.substring(3,5), 10 );
        if ( maaned<1 || maaned>12 ) {
            alert( \"forkert måned. gyldige værdier er 01..12\" );
            fejl = true;
        }
        var aar = parseInt( tx.substring(6,10), 10 );
        if ( aar < 1900 || aar > 1999 ) {
            alert( \"forkert år. gyldige værdier er 1900..1999\" );
            fejl = true;
            // men hvad hvis din kusine vil sende en besked fra sit 0-årige barn?
        }
    } else {
        alert( \"forkert dato format. brug  dd.mm.åååå\" )
        return false;
    }

mvh JakobA
Avatar billede dengalepose.dk Nybegynder
31. oktober 2001 - 12:51 #11
Hvis jeg nu s;tter kilden ind her, er der s[ en af jer, der gider at fort;lle mig hvad jeg mangler. Jeg ved godt at den er meget ufuldendt, men jeg har fandenme besv;r med det.

Der skal nok falder flere point af.

DGP
Avatar billede dengalepose.dk Nybegynder
31. oktober 2001 - 13:04 #12
falde
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