Avatar billede jonas82 Nybegynder
07. januar 2004 - 19:38 Der er 4 kommentarer og
1 løsning

Validering af form

Jeg har en form hvor jeg skal have valideret input, formen må kun blive sendt hvis den kan valideres:

<form action='skriv.php' method='post'>
Tekstarea:<br>
<textarea name="Tekst" rows="10" cols="30"></textarea><br>
Tal:<br><input type='text' name='tal'><br>
Email:<br><input type='text' name='email'><br>
<input type='submit' value='Opret'>
</form>

"Textarea" må indeholde alt, men ikke være tomt.
"Tal" må kun indeholde tal og ikke være tom.
"email" skal indeholde en emailadresse, må heller ikke være tom.

Håber nogen kan hjælpe mig på vej. Aner ikke hvordan man gør. :)
Avatar billede eagleeye Praktikant
07. januar 2004 - 20:00 #1
Ideem er man laver en javascript function ´som tjekker formen og den kalder man på form'en onsubmit event:

Et eksempel på hvordn du kan gøer det med din form:

<script language="javascript1.2">

function validate(theform) {
  if(theform.Tekst.value=='') {
    alert("Tekstareaet skal udfyldes!");
    return false;
  }
  var filter = /[^\d]/;
  if(filter.test(theform.tal.value)==true || theform.tal.value=='') {
    alert("tallet skal udfyldes!");
    return false;
  }
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  if (filter.test(theform.email.value)==false) {
    alert("email skal udfyldes!");
    return false;
  }
return true;
}
</script>

<form action='skriv.php' method='post' onsubmit="return validate(this);">
Tekstarea:<br>
<textarea name="Tekst" rows="10" cols="30"></textarea><br>
Tal:<br><input type='text' name='tal'><br>
Email:<br><input type='text' name='email'><br>
<input type='submit' value='Opret'>
</form>
Avatar billede jonas82 Nybegynder
07. januar 2004 - 20:12 #2
Wow det ser ud til at virke ligesom jeg vil ha. Er det muligt at gøre så der kan være kommatal i tal feltet, så 10.5 fx er ok.

Jeg forstår ikke umiddelbart hvordan den filtervariabel virker.
Avatar billede eagleeye Praktikant
07. januar 2004 - 20:20 #3
Ja det kan man, det er regular expression som bruges til validere som strengen har et bestemt format

Prøv at rette disse linjer:

  var filter = /[^\d]/;
  if(filter.test(theform.tal.value)==true || theform.tal.value=='') {
    alert("tallet skal udfyldes!");
    return false;
  }


Til disse linjer:

  var filter = /^\d+(\.\d+)?$/;
  if(filter.test(theform.tal.value)==false || theform.tal.value=='') {
    alert("tallet skal udfyldes!");
    return false;
  }
Avatar billede jonas82 Nybegynder
07. januar 2004 - 20:25 #4
Tusind tak!
Det virker super. Hvis du eller andre ved hvor jeg kan læse om hvordan man opbygger den filter variabel, vil jeg være glad for et link.
Avatar billede eagleeye Praktikant
07. januar 2004 - 20:33 #5
Som før skrevet hedder det Regular Exprssion og der findes en masse sider som beskriver hvordan man gør :)

http://www.siteexperts.com/tips/functions/ts23/page1.asp
http://www.webreference.com/js/column5/
http://www.javascriptkit.com/javatutors/re.shtml


Du kan søge på google.com : Regular Exprssion Javascript
Du kan også søge efter validering functioner eller dele deraf ;) ved at skrive valid email javascript så kommer der flere eksempler.
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