Avatar billede fromse Nybegynder
15. september 2004 - 18:08 Der er 16 kommentarer og
1 løsning

Kontakt formular med validering

Hej...
Jeg har en kontaktformular. Den skulle meget gerne fungere sådan at hvis man ikke har udfyldt felterne så står der:

Du mangeler at udfylde
- Navn
- Firma
- E-mail
- Kommentar

Og hvis man ikke har skrevet en gyldig email, skal den også sige fejl. dvs den skal se om det er sat op sådan: x@x.x (Du har ikke indtasten en gyldig email)

/fromse...
Avatar billede grunken Nybegynder
15. september 2004 - 18:34 #1
Sådan noget ligende :

<script type="text/javascript">
function check(e){
var r = [],err=0,str = "Du mangler at udfylde:\n\n";
r['besked']=r['firma']=r['navn']=/^\w+$/;
r['email'] = /^[0-9a-z\.\_\-]+\@[0-9a-z\.\_\-]{1,}\.[a-z]{2,4}$/;

e = e.elements;

for(i=0;i<e.length;i++){
  if(r[e[i].name] && !r[e[i].name].test(e[i].value)){
  f = (e[i].value.length>0)?"Er ugyldigt indtastet\n":"Skal indtastes\n"
  str += e[i].name+" - "+f;
  err++
}
}
if(err>0){alert(str);return false}else return true;
}
</script>

<form action="." onsubmit="return check(this);">
Navn<input type="text" name="navn"><br>
Firma<input type="text" name="firma"><br>
email<input type="text" name="email"><br>
besked<br>
<textarea name="besked"></textarea><br>
<input type="submit" value="send">
</form>
Avatar billede fromse Nybegynder
15. september 2004 - 19:27 #2
Når man så har udfyldt det hele, men mailen er forkert, så står der:

Du mangler at udfylde:

Kan man få den til ikke at skrive det?
Så den skriver det ved alle de andre, men bare ikke når mailen er forkert...?
Avatar billede fromse Nybegynder
15. september 2004 - 19:31 #3
kan også se at den tager name fra <input>... navn - Skal indtastes... Kan det ændres, så man selv skriver hvad der skal stå
Avatar billede fromse Nybegynder
16. september 2004 - 14:26 #4
Jeg har fået det til at virke (næsten)

http://script.fromse.dk

Prøv at udfylde felterne. Den siger fejl hvis man fx i feltet Navn skriver: Daniel From. (to ord) Det samme gør den med kommentar, og den siger også fejl hvis der er punktum i...

Er det noget der kan rettes...

Du får 30p+30p...

/fromse
Avatar billede grunken Nybegynder
16. september 2004 - 15:21 #5
Hejsa fromse >> beklager den lange responstid, men der er vis gået noget galt i ekspetens forsøg på at afsende mails i dde spørgsmål jeg deltager I ;o)

Grunden til det seneste problem er at jeg checker en strengs valitet ved hjælp af regular expression - og du vil derfor kunne definere 100% hvilke tegn folk skal have lov til at indtaste!

derfor hvis du vil have lov til at skrive lidt flere tegn, kan du bare ændre lidt i følgende linie :

r['Navn']=r['Kommentar']=/^\w+$/;

til:

r['Navn']=r['Kommentar']=/^[\s\wæøå .,]+$/i;

du kan selvfølgelig også fuldstændigt gøre dem uafhænge af hinanden ved at dele dem op sådan :

r['Navn']=/^[\s\wæøå.]+$/i
r['Kommentar']=/^[\s\wæøå .,]+$/i;

Hvis du ønsker lidt hjælp til at komme i gang med regular expressions - kan du læse en "god" "kom i gang" guide her:
http://tech.irt.org/articles/js049/

Og selvfølgelig skal der ikke udloves flere points ;o) 30 er mere end rigeligt!
Avatar billede fromse Nybegynder
16. september 2004 - 15:29 #6
tak for det... :) nu virker det, næsten... hehe

Den siger fejl hvis man sætter " ind i kommentarfeltet... ?
Avatar billede fromse Nybegynder
16. september 2004 - 15:31 #7
den godtager ikke nogle special tegn...
Avatar billede fromse Nybegynder
16. september 2004 - 15:40 #8
en lille ting til... kan man gøre at den skriver noget forskelligt til hver fejl?

fx

Du skal skrive dit navn
Firma ikke oplyst
Du mangler at skrive en kommentar

Hvis du forstår mig... lige nu tager den standadtekst + input navn...
Avatar billede grunken Nybegynder
16. september 2004 - 16:27 #9
Så er det bare at lave scriptet om til en endnu mere standard måde at cheke på ;o)

- grunden til at den anden kan være smart er at man ikke behøves at lave ændringer i scriptet hver gang man tilføjer noget nyt til formen!



<script type=text/javascript>
function check(e){
err=0,str="Fejl!\n\n";

mai = /^[0-9a-z\.\_\-]+\@[0-9a-z\.\_\-]{1,}\.[a-z]{2,4}$/;
nav = /^[\wæøå\s.]+$/i


if(!nav.test(e.Navn.value)){
  str += (e.Navn.value.length>0)?"Navn er ugyldigt indtastet\n":"Navn skal indtastes\n"
  err++
}
if(!mai.test(e.Email.value)){
  str += (e.Navn.value.length>0)?"E-mail ugyldigt indtastet\n":"E-mail skal indtastes\n"
  err++
}
if(!e.Kommentar.value.length>0)){
  str += "Kommentar skal indtastes"
  err++
}

if(err>0){alert(str);return false}else return true;
}
</script>
Avatar billede fromse Nybegynder
16. september 2004 - 16:31 #10
hvad skal jeg skrive i <form>?
<form action="#" method="post" onsubmit="return check(this);">

Den sender med det samme...
Avatar billede fromse Nybegynder
16. september 2004 - 16:35 #11
Det er hele min kode...


<script type=text/javascript>
function check(e){
err=0,str="Fejl!\n\n";

mai = /^[0-9a-z\.\_\-]+\@[0-9a-z\.\_\-]{1,}\.[a-z]{2,4}$/;
nav = /^[\wæøå\s.]+$/i


if(!nav.test(e.Navn.value)){
  str += (e.Navn.value.length>0)?"Navn er ugyldigt indtastet\n":"Navn skal indtastes\n"
  err++
}
if(!mai.test(e.Email.value)){
  str += (e.Navn.value.length>0)?"E-mail ugyldigt indtastet\n":"E-mail skal indtastes\n"
  err++
}
if(!e.Kommentar.value.length>0)){
  str += "Kommentar skal indtastes"
  err++
}

if(err>0){alert(str);return false}else return true;
}
</script>

<style>
td {font-family:verdana; font-size:12;}
input, textarea {width:300px; border-width:1px; font-family:verdana; font-size:10px; border:1px solid #000000; background-color:transparent;}
.knap {cursor:hand; width:75px; background-color:transparent;}
</style>

<form action="#" method="post" onsubmit="return check(this);">
<table cellSpacing=2 cellPadding=2 border=0>
  <tr>
    <td width=100>Navn:</td>
    <td><input type="text" name=Navn></td>
    <td valign="top"> <font face="verdana" title="Skal udfyldes!" size="2" color="990000"><b>*</b></font></td>
  </tr>
  <tr>
    <td>Adresse:</td>
    <td><input type="text" name=adresse></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td>Postnr. &amp; by:</td>
    <td><input type="text" name=postnr-by></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td>Telefon:</td>
    <td><input type="text" name=telefon></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td>Email:</td>
    <td><input type="text" name=E-mail></td>
    <td valign="top"> <font face="verdana" title="Skal udfyldes!" size="2" color="990000"><b>*</b></font></td>
  </tr>
  <tr>
    <td vAlign=top>Kommentar:</td>
    <td><textarea name=Kommentar rows=7></textarea></td>
    <td valign="top"> <font face="verdana" title="Skal udfyldes!" size="2" color="990000"><b>*</b></font></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2"><input class=knap type=submit value=Send>&nbsp;<input class=knap type=reset value=Nulstil></td>
  </tr>
</table>
</form>
Avatar billede fromse Nybegynder
24. september 2004 - 14:02 #12
?
Avatar billede grunken Nybegynder
24. september 2004 - 14:26 #13
godt nok har jeg set mange sære ting - her på eksperten - men dette er dog en af de særeste!

<script type=text/javascript>
function check(e){
err=0,str="Fejl!\n\n";

mai = /^[0-9a-z\.\_\-]+\@[0-9a-z\.\_\-]{1,}\.[a-z]{2,4}$/;
nav = /^[\wæøå\s.]+$/i


if(!nav.test(e.Navn.value)){
  str += (e.Navn.value.length>0)?"Navn er ugyldigt indtastet\n":"Navn skal indtastes\n"
  err++
}
if(!mai.test(e.Email.value)){
  str += (e.Email.value.length>0)?"E-mail ugyldigt indtastet\n":"E-mail skal indtastes\n"
  err++
}
if(e.Kommentar.value.length==0){
  str += "Kommentar skal indtastes"
  err++
}

if(err>0){alert(str);return false}else return true;
}
</script>

<style>
td {font-family:verdana; font-size:12;}
input, textarea {width:300px; border-width:1px; font-family:verdana; font-size:10px; border:1px solid #000000; background-color:transparent;}
.knap {cursor:hand; width:75px; background-color:transparent;}
</style>

<form action="#" method="post" onsubmit="return check(this);">
<table cellSpacing=2 cellPadding=2 border=0>
  <tr>
    <td width=100>Navn:</td>
    <td><input type="text" name=Navn></td>
    <td valign="top"> <font face="verdana" title="Skal udfyldes!" size="2" color="990000"><b>*</b></font></td>
  </tr>
  <tr>
    <td>Adresse:</td>
    <td><input type="text" name=adresse></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td>Postnr. &amp; by:</td>
    <td><input type="text" name=postnr-by></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td>Telefon:</td>
    <td><input type="text" name=telefon></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td>Email:</td>
    <td><input type="text" name=Email></td>
    <td valign="top"> <font face="verdana" title="Skal udfyldes!" size="2" color="990000"><b>*</b></font></td>
  </tr>
  <tr>
    <td vAlign=top>Kommentar:</td>
    <td><textarea name=Kommentar rows=7></textarea></td>
    <td valign="top"> <font face="verdana" title="Skal udfyldes!" size="2" color="990000"><b>*</b></font></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2"><input class=knap type=submit value=Send>&nbsp;<input class=knap type=reset value=Nulstil></td>
  </tr>
</table>
</form>
Avatar billede fromse Nybegynder
24. september 2004 - 14:46 #14
tak for hjælpen... kunne bare ikke vente... dan jeg skulle bruge koden...

har oprettet et spørgsmål der hedder "point til grunken"

/fromse
Avatar billede fromse Nybegynder
24. september 2004 - 14:46 #15
Avatar billede grunken Nybegynder
24. september 2004 - 14:53 #16
Okay - det er fint :o)

Ved nærmere nærlæsning kan jeg også se at endnu et indlæg er sprunget a pommern til, og jeg har IKKE modtaget mail ;o)

- grunden til at man normalt laver en rimelig streng regular expression i forbindelse med kontakt felter er at man bliver fri for at modtage en masse dummyindtastninger såsom !"#&¤%((#(%? ;o)
Avatar billede fromse Nybegynder
24. september 2004 - 14:54 #17
Oki... tak for hjælpen igenner...

/fromse
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