<script type="text/javascript"> function valider(f){ if(f.bodyTxt.value==""){ alert("Du skal skrive noget body-tekst"); f.bodyTxt.focus(); return false; } if(f.navn.value==""){ alert("Du skal skrive dit navn"); f.navn.focus(); return false; } var reg = /^.*?@\w[\w.-]*\.[a-z]{2,6}$/i; if(!f.email.value.match(reg)){ alert("Du skal skrive en gyldig email"); f.email.focus(); return false; } // Skal kun med på den ene side !-) if(!f.recipient.value.match(reg)){ alert("Du skal skrive en gyldig modtager-email"); f.recipient.focus(); return false; } // Blok slut her return true; } </script>
-- bemærk, at jeg har lavet et par af feltnavnene om, da der i forvejen findes en property på document, der hedder body og fordi formen også har en name-property !-)
Synes godt om
Slettet bruger
16. oktober 2005 - 18:46#2
Aha!
Jammen, det er jo 2 forskellige formularer, på hver sin web-side. Skal det så ikke være 2 forskellige JavaScripts? Eller lægger jeg JavaScriptet som en include-fil? ...jeg tror desværre, at vi er gået lidt forbi hinanden, Roenving... :-(
Synes godt om
Slettet bruger
16. oktober 2005 - 18:48#3
...altså formular A på den ene webside, og formular B på den anden web-side. ;-)
Kast venligst et svar herind, så jeg kan tildele dig points for dit fine script! :-)
Synes godt om
Slettet bruger
16. oktober 2005 - 19:02#6
Øh... kan man ikke gemme scriptet væk som en .js include-fil, tror du? Eller skal der "kaldes på det", på et bestemt sted i dokumentet? Jeg plejer nemlig altid at gemme alle JavaScript-filer og CSS-filer i seperate mapper. :-)
-- og vær opmærksom på, at specielt feltnavne som name og submit giver voldsomme problemer pga. sammenfaldet med andre properties eller metoder (body er det bare ikke smart at bruge nogen steder !-)
Jo, og du kan også bruge det samme script således:
checkForm.js:
function valider(f){ if(f.bodyTxt.value==""){ alert("Du skal skrive noget body-tekst"); f.bodyTxt.focus(); return false; } if(f.navn.value==""){ alert("Du skal skrive dit navn"); f.navn.focus(); return false; } var reg = /^.*?@\w[\w.-]*\.[a-z]{2,6}$/i; if(!f.email.value.match(reg)){ alert("Du skal skrive en gyldig email"); f.email.focus(); return false; }
//Bemærk, at du skal sørge for forskellige navne på formene !-) if(f.name=='formB' && !f.recipient.value.match(reg)){ alert("Du skal skrive en gyldig modtager-email"); f.recipient.focus(); return false; }
Jepper, jeg ved godt at feltnavnene absolut ikke er de mest hensigtsmæsige, men det er et færdigt script jeg har overtaget, og er ved at modificere. Og når jeg skifter over til MySQL-databasen, så SKAL jeg til at lave feltnavnene om. Men der er dælemig så mange steder jeg skal reparere, så jeg venter lidt med den del. Nu skal jeg bare have det til at virke ordentligt først, så finpudser jeg bagefter :-)
Synes godt om
Slettet bruger
16. oktober 2005 - 19:20#10
...er det ikke regular expression du har brugt, til at validere E-mail-feltet med? Smart! :-)
Jo, en regExp er ret indlysende at bruge til email-validering !o]
Synes godt om
Slettet bruger
16. oktober 2005 - 19:28#13
*suk* Ja, så må jeg nok til at kaste lidt rundt med feltnavnene, for jeg er afhænig af at formen kan valideres via javascriptet - ellers kommer der nemlig fejl hvis folk ikke skriver korrekt i mail-felterne, fordi der sendes via JMail.
Det er så muligt at få fat i et element uden at adressere det som direkte property, men lad alligevel være med at forlade dig på den slags tåbeligheder ...
f.elements["name"] burde ikke give problemer med formens name-property !-)
-- men jeg vil igen understrege, forlad dig ikke på den slags, sørg for at alle identifikatorer ikke er forvekslelige !o]
-- standard-tåbeligheden hedder en frame med navnet 'top', hvilket i javascript henviser til det alleryderste window-element ...
Synes godt om
Ny brugerNybegynder
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.