29. oktober 2001 - 17:19Der 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 ;-)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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
Synes godt om
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: </td> <td><input type=\"text\" name=\"fra\" size=\"15\" class=\"text\"></td> </tr> <tr> <td width=\"150\" align=\"right\">Din E-mail: </td> <td><input type=\"text\" name=\"email\" size=\"25\" class=\"text\"></td> </tr> <tr> <td width=\"150\" align=\"right\" valign=\"top\">Besked: </td> <td><textarea cols=\"30\" rows=\"7\" name=\"besked\" maxlength=\"160\" wrap=\"soft\"></textarea></td> </tr> <tr> <td> </td><td> <input type=\"Image\" alt=\"Send\" src=\"images/send.gif\" border=\"0\"> </td> </tr> </form> </table>
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.
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.
// 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; }
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.
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.