Avatar billede pelkjaer Nybegynder
10. maj 2001 - 10:40 Der er 24 kommentarer og
3 løsninger

Validering af form

Hej eksperter

Er der en der kan hjælpe mig med at lave en validering af min formmail på www.demenskonsulent.dk/kontakt.html

Hvis jeg viste hvilket stykke kode jeg skulle poste, ville jeg gøre det :o)

/pelkjaer
Avatar billede Slettet bruger
10. maj 2001 - 10:41 #1
Avatar billede kirsten Nybegynder
10. maj 2001 - 10:42 #2
Der er en udemærket gennemgang af det her:
http://builder.dk/artikler/article.asp?AID=31
:)
Avatar billede kirsten Nybegynder
10. maj 2001 - 10:43 #3
Damn 7 sek. hurtigere!!! :)
Avatar billede pelkjaer Nybegynder
10. maj 2001 - 10:43 #4
Jeg ser lige på det!

/pelkjaer
Avatar billede pelkjaer Nybegynder
10. maj 2001 - 11:07 #5
Hmm..jeg kan ikke få det til at virke.

Har prøvet at validere \"navn-feltet\" + \"emailfeltet\" + \"@ i emailfeltet\"
-med dette scrpt:

<script language=\"JavaScript\">
<!--

function Checkform(thisform) {
    // Startværdier
    strError = \'Der opstod følgende fejl:\\n\\n\';
    intError = 0;
   
    //Check email,  er den tom
    if (thisform.email.value == \"\")
    {
    strError = strError + \'-Email mangler\\n\'
    intError = 1;
    thisform.email.focus();
           

    }
    // Check for @ i email
    if (thisform.email.value.indexOf(\"@\") == -1 && thisform.Email.value != \"\")
    {
    strError = strError + \'-Mangler @ i emailadresse\\n\'
    intError = 1;
    thisform.email.focus();

    }   

    // Check et hvilket som helst felt
    if (thisform.att.value == \"\")
    {
    strError = strError + \'-Navn mangler\\n\'
    intError = 1;
    thisform.att.focus();

    }       
   
   
    if (intError == 1) {
    alert(strError)
    return false;
    }
   
}
</script>

Kan I se hvad der er galt?
I må sige til hvis jeg skal flytte spørgsmålet til js

/pelkjaer
Avatar billede kirsten Nybegynder
10. maj 2001 - 11:10 #6
Kan du post formen, så skal jeg lave det til dig?
:)
Avatar billede jakoba Nybegynder
10. maj 2001 - 11:14 #7
Du har <form dybt inde i en tabelcelle og </form helt udenfor tabellen. Det kan give problemer i standard-html browsere hvor start og slut skal ligge på samme niveau. (flyt <form ud af tabellen

husk at sætte \"tegn omkring strengparametre i html kommandoer.
<input name=att ...>  bør rettes til:
<input name=\"att\" ...>  osv. for alle andre strengparametre.

i din <form tag indsætter du en  onsubmit  event:
<form method=\"POST\" action=\"http://scripts.abusiness.dk/formmail.pl\" name=\"\" onsubmit=\"return valider(this.form)\">

funktionen  valider  defineres i en script sektion:

<script language=\'javascript\'> <!--

function valider ( frm ) { // test felterne i javascript et for et
// if ( felt_er_OK )    // format for feltcheck
//    fortsæt          // gå videre til næste felt
// else {
//    alert(\"Skriv en felmeddelelse\");
//    sæt focus på det felt
//    return false;    // afbryder funktionen og returnerer false.

// test feltet \"att\" 
  if ( frm.att.value.length > 0 ) {
      // alt ok han har skrevet noget
  } else {
      alert (\"Feltet Navn skal udfyldes.\");
      frm.att.focus();
      return false;
  };

// test feltet \"adresse\"
  // ingen test, han behøver ikke udfylde dette felt

// test feltet \"post_nr\"  //NB: navne skal være eet enkelt ord.
  if (  ( frm.post_nr.value.length == 4 )        // max 4-cifre
        &&( parseInt( frm.post_nr.value ) > 1000 )  // 1000 til 9999
      ) {
      // fint, det er et lovligt dansk postnummer.
  } else {
      alert (\"Feltet Postnummer er ikke udfyldt med dansk postnummer .\");
      frm.post_nr.focus();
      return false;
  };

// osv. en test for hvert felt.  Tilsidst skriver du return true:

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

// --> </script>

mvh www.fotx.net/JakobA
Avatar billede pelkjaer Nybegynder
10. maj 2001 - 11:17 #8
Hehe...hvis jeg viste hvad jeg skulle poste :o)

Du kan ikke selv se det i koden?
Eller ved du præcis hvad jeg skal poste?
Avatar billede pelkjaer Nybegynder
10. maj 2001 - 11:22 #9
Så blev jeg for alvor forvirret. 10 min, jeg skal lige se på det her!
Avatar billede Slettet bruger
10. maj 2001 - 11:23 #10
Husk at noget af koden skal ind i <BODY></BODY>...
Avatar billede Slettet bruger
10. maj 2001 - 11:24 #11
og noget skal ind i <HEAD></HEAD>
Avatar billede jakoba Nybegynder
10. maj 2001 - 11:25 #12
Damn 33 minutter og 7 sek. hurtigere!!! :-))
Avatar billede kirsten Nybegynder
10. maj 2001 - 11:26 #13
ja ja..... :)
Avatar billede jakoba Nybegynder
10. maj 2001 - 11:31 #14
pelkjaer\'s form:  (tabelformattering osv er klippet væk)



<form method=\"POST\" action=\"http://scripts.abusiness.dk/formmail.pl\" name=\"\">

<input type=\"hidden\" name=\"recipient\" value=\"info@demenskonsulent.dk\">
<input type=\"hidden\" name=\"subject\" value=\"Webmail Demenskonsulent.dk\">
<input type=\"hidden\" name=\"sort\" value=\"alphabetic\">
<input type=\"hidden\" name=\"env_report\" size=\"60\" value=\"REMOTE_HOST, HTTP_USER_AGENT, REMOTE_ADDR\">

<input name=att style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Arial, Verdana, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\">

<input name=adresse style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Arial, Verdana, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\">

<input name=post nr style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Arial, Verdana, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\">

<input name=telefon style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Arial, Verdana, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\">

<input name=fax style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Arial, Verdana, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\">

<input name=email style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Arial, Verdana, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\">

<textarea name=\"note\" style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Verdana, Arial, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\" cols=\"30\" rows=\"8\"></textarea>

</form>
Avatar billede Slettet bruger
10. maj 2001 - 11:33 #15
hvor er onsubmit=\"valider()\" eller onclick=\"valider()\" henne?
Avatar billede pelkjaer Nybegynder
10. maj 2001 - 11:48 #16
jakoba>> Hvis jeg flytter <form ud af tabellen brokker DW sig.

Nu har jeg sat denne her: <form method=\"POST\" action=\"http://scripts.abusiness.dk/formmail.pl\"; name=\"\" onsubmit=\"return valider(this.form)\">
ind i mit <form tag

Men det virker ikke. Nok fordi som el_barto siger: hvor er onsubmit=\"valider()\" eller onclick=\"valider()\" henne?

Har du også et svar på det? :o)

/pelkjaer
Avatar billede pelkjaer Nybegynder
10. maj 2001 - 11:50 #17
Er det ikke denne her jeg \"submitter\" med: <input type=\"image\" border=\"0\" name=\"imageField\" src=\"send.gif\" width=\"72\" height=\"17\">
Avatar billede Slettet bruger
10. maj 2001 - 11:51 #18
det bør iøvrigt nok være valider(); i stedet for valider()
Avatar billede Slettet bruger
10. maj 2001 - 11:51 #19
Jo, det er den du submitter med. Men hvis din <FORM> allerede indeholder en onsubmit=\"valider();\" er det det samme som knappen ville gøre..
Avatar billede pelkjaer Nybegynder
10. maj 2001 - 11:53 #20
Det forstår jeg ikke.
Avatar billede Slettet bruger
10. maj 2001 - 11:57 #21
Din form havde ikke et navn. Det har den nu:

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">

<html>
<head>
    <title>Untitled</title>

<script language=\'javascript\'> <!--

function valider ( form ) { // test felterne i javascript et for et
// if ( felt_er_OK )    // format for feltcheck
//    fortsæt          // gå videre til næste felt
// else {
//    alert(\"Skriv en felmeddelelse\");
//    sæt focus på det felt
//    return false;    // afbryder funktionen og returnerer false.

// test feltet \"att\" 
  if ( form.att.value.length > 0 ) {
      // alt ok han har skrevet noget
  } else {
      alert (\"Feltet Navn skal udfyldes.\");
      form.att.focus();
      return false;
  };

// test feltet \"adresse\"
  // ingen test, han behøver ikke udfylde dette felt

// test feltet \"post_nr\"  //NB: navne skal være eet enkelt ord.
  if (  ( form.post_nr.value.length == 4 )        // max 4-cifre
        &&( parseInt( form.post_nr.value ) > 1000 )  // 1000 til 9999
      ) {
      // fint, det er et lovligt dansk postnummer.
  } else {
      alert (\"Feltet Postnummer er ikke udfyldt med dansk postnummer .\");
      form.post_nr.focus();
      return false;
  };

// osv. en test for hvert felt.  Tilsidst skriver du return true:

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

// --> </script>
   

</head>

<body>

<form method=\"POST\" onsubmit=\"return valider(this);\" action=\"http://scripts.abusiness.dk/formmail.pl\"; name=\"att\">

<input type=\"hidden\" name=\"recipient\" value=\"info@demenskonsulent.dk\">
<input type=\"hidden\" name=\"subject\" value=\"Webmail Demenskonsulent.dk\">
<input type=\"hidden\" name=\"sort\" value=\"alphabetic\">
<input type=\"hidden\" name=\"env_report\" size=\"60\" value=\"REMOTE_HOST, HTTP_USER_AGENT, REMOTE_ADDR\">

<input name=att style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Arial, Verdana, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\">

<input name=adresse style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Arial, Verdana, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\">

<input name=post nr style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Arial, Verdana, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\">

<input name=telefon style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Arial, Verdana, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\">

<input name=fax style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Arial, Verdana, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\">

<input name=email style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Arial, Verdana, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\">

<textarea name=\"note\" style=\"BACKGROUND-COLOR: #222222; BORDER-BOTTOM: #eeeddd 1px solid; BORDER-LEFT: #eeeddd 1px solid; BORDER-RIGHT: #eeeddd 1px solid; BORDER-TOP: #eeeddd 1px solid; COLOR: #eeeddd; FONT-FAMILY: Verdana, Arial, Helvetica; FONT-SIZE: xx-small; FONT-WEIGHT: 200; LETTER-SPACING: 0px; WIDTH: 173px\" cols=\"30\" rows=\"8\"></textarea>

<input type=\"image\" border=\"0\" name=\"imageField\" src=\"send.gif\" width=\"72\" height=\"17\">   



</form>


</body>
</html>

Klip selv ud og tilføj flere felter efter behov!
Avatar billede erikjacobsen Ekspert
10. maj 2001 - 11:59 #22
Formen behøver ikke have et navn når du refererer til den med this i
f.eks.  valider(this)
Avatar billede Slettet bruger
10. maj 2001 - 12:00 #23
nej, men i JavaScriptet refereredes til att...

Men det virker hos mig nu..
Avatar billede erikjacobsen Ekspert
10. maj 2001 - 12:02 #24
Ja, ja, men det er på grund af <input name=att ....
Det behøver ikke være formens navn. Men det virker alligevel!
Avatar billede pelkjaer Nybegynder
10. maj 2001 - 12:05 #25
Det ser ud til at virke ja.

Jeg siger tusind tak for hjælpen allesammen.
Det er vist meget fair at dele således:

el_barto: 13
kirsten:  4
jakoba:  13

/pelkjaer
Avatar billede pelkjaer Nybegynder
10. maj 2001 - 12:36 #26
Det er nok jeg der er tykhovedet, men når jeg prøver det på siden, virker det ikke. Og oven i det får jeg nu fejlmeddelelser som \"objekt var ventet\" steder jeg ikke har ændret!
Hvad har jeg nu gjort forkert?

www.demenskonsulent.dk/kontakt.html
Avatar billede pelkjaer Nybegynder
10. maj 2001 - 15:33 #27
Egen fejl...:o)

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