Avatar billede remo27 Nybegynder
22. juni 2007 - 23:04 Der er 6 kommentarer og
1 løsning

Valideringssystem til en formular

Jeg har denne formular, hvor man skal udfylde nogle felter gør man ikke det skal der komme en tekst frem med at man skal udfylde følgende felt.

Min formular ser således ud.

hvem kan kan/vil hjælpe mig igang.

<center>
  <table border="0" cellpadding="0" cellspacing="0" bordercolor="#111111" width="60%">
  <form action="opretdp_ac.asp" method="post">
    <tr>
      <td width="60%" colspan="2" align="center" class="topbar" >Opret dig her</td>
    </tr>
    <tr>
      <td width="60%">Navn<br><input type="text" name="navn" size="50"></td>
    </tr>
    <tr>
      <td width="60%">Adresse<br><input type="text" name="adresse" size="50"></td>
    </tr>
    <tr>
      <td width="60%">Postnr<br><input type="text" name="postnr" size="50"></td>
    </tr>
    <tr>
      <td width="60%">By<br><input type="text" name="city" size="50"></td>
    </tr>
    <tr>
      <td width="60%">Telefon nr.<br><input type="text" name="tlf" size="50"></td>
    </tr>
        <tr>
      <td width="60%">Mobil<br><input type="text" name="mobil" size="50"></td>
    </tr>
        <tr>
      <td width="60%">Email<br><input type="text" name="email" size="50"></td>
    </tr>
        <tr>
      <td width="60%">web<br><input type="text" name="web" size="50"></td>
    </tr>
        <tr>
      <td width="60%">Sted<br><input type="text" name="sted" size="50"></td>
    </tr>
        <tr>
      <td width="60%">Ledige pladser.<br><input type="text" name="lp" size="50">feks. 01-10-07</td>
    </tr>
        <tr>
      <td width="60%">Nystartet dato<br><input type="text" name="nyd" size="50">feks. 01-03-05</td>
    </tr>
    <tr>
    <td width="60%" >Tekst<br><textarea rows="5" name="tekst" cols="38"></textarea></td>
    </tr>
        <tr>
      <td width="60%">Brugernavn<br>
      <input type="text" name="brugernavn" size="50"></td>
    </tr>
        <tr>
      <td width="60%">Password<br>
      <input type="password" name="kodeord" size="50"></td>
    </tr>
        <tr>
      <td width="60%">Tilmeld dig www.deprivatedagplejere.dk</td>
    </tr>
        <tr>
<td width="60%"><input type="checkbox" name="tilmeldanden" value="1"></td>
</tr>
    <tr>
      <td width="60%" colspan="2" align="center"  class="topbar">
    <input type="hidden" name="pic1" value="dummie.jpg" >
    <input type="hidden" name="pic2" value="dummie.jpg" >
    <input type="hidden" name="pic3" value="dummie.jpg" >
  <input type="submit" value="Opret" name="tilmeld"><input type="reset" value="Fortryd" name="Fortryd"></td>
    </form>
    </tr>
   
  </table>
  </center>
Avatar billede mikkelk Nybegynder
23. juni 2007 - 21:18 #1
Nu er der jo flere måder at lave en validering på. Man kan gøre det via f.eks. javascript eller serverside med ASP - har du gjort dig nogen overvejelser om det?

Serverside vil du f.eks. kunne skrive noget a'la:
<%
if request.form("brugernavn") = "" then
response.write "Du mangler at udfylde brugernavn"
end if
%>
Avatar billede remo27 Nybegynder
24. juni 2007 - 09:13 #2
mikkelk>> Det har jeg ikke, hvad er lettest at bruge
Avatar billede mikkelk Nybegynder
24. juni 2007 - 11:35 #3
Det er svært at svare på, men de har jo hver sine fordele. Jeg ville nok vælge at bruge begge dele, da man kan være ude for at en javascript-løsning ikke virker i alle browsere. Jeg plejer at lave javascript-løsning der sikrer at folk grundlæggende udfylder felterne korrekt. F.eks. at postnr er på 4 tegn, at navn er udfyldt med mere end 2 tegn eller lignende. Og så lave et grundigere tjek serverside med ASP når folk har postet sendt deres indtastninger.
Fordelen ved javascript-løsningen er at den forhindre brugeren i overhovedet at sende formularindholdet og dermed kan han nå at ændre sine indtastninger. Serverside-valideringen med ASP foregår når brugeren har sendt data. Han får således typisk blot en besked om at det han har sendt var forkert - og så kan han selv gå tilbage og rette det.(det var den grove udlægning, man kan lave en bedre serverside-valideringsform, men så skal der skrives liiidt mere kode end jeg viste før).
En javascript-løsning ville f.eks. være følgende der giver brugeren en advarsel hvis post-nr er mindre end 4 tegn:
<script>
function validateForm(){
if (document.getElementById("postnr").value.length < 4) {
alert("Du har ikke skrevet et korrekt postnr");
return false;
} else { return true; }
}
</script>
<form ... onsubmit="return validateForm();">
...
<input type="text" name="postnr" id="postnr" size="50">
</form>
Avatar billede remo27 Nybegynder
24. juni 2007 - 11:55 #4
ok, der ser ud til at være til at gennemskue dette JS-script. hvad så med
hvis de glemmer feks. brugernavn.

og det er vel bare at kopiere function til den sidste } når man skal gentage de andre felter i formulare, navn adresse osv ??
Avatar billede mikkelk Nybegynder
24. juni 2007 - 12:01 #5
Ja, du kan jo bare udvide funktionen:

<script>
function validateForm(){
if (document.getElementById("postnr").value.length < 4) {
alert("Du har ikke skrevet et korrekt postnr");
return false;
} else if (document.getElementById("brugernavn").value = '')
{
return false;
} else { return true; }
}
</script>
<form ... onsubmit="return validateForm();">
...
<input type="text" name="postnr" id="postnr" size="50">
</form>
Avatar billede mikkelk Nybegynder
24. juni 2007 - 12:01 #6
Husk at giver felterne et id hvis du bruger document.getElementById
Avatar billede mikkelk Nybegynder
24. juni 2007 - 13:05 #7
Og så må det vidst iøvrigt efterhånden være et svar :-)
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
Kurser inden for grundlæggende programmering

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