Avatar billede 12tri Nybegynder
23. september 2001 - 18:46 Der er 15 kommentarer og
1 løsning

validering af formularer

validering af formularer

Jeg kan ikke få validering af formularer til at virke jeg får enten en fejlmelding, eller intet bliver vist på skærmen.

Jeg har taget udgangspunkt i www.html.dk ’s http://www.html.dk/artikler/00016/ og www.builder.dk ’s  http://www.builder.dk/artikler/article.asp?AID=31 men jeg kan ganske ikke få det til at virke men min formular som ser således ud:

<form method=\"post\" action=\"save.asp\">
<B>Navn:</b> (obligatorisk)<BR>
<% If Request.Cookies(\"12tri\")(\"navn\") = \"\" Then %>
<input type=\"text\" name=\"navn\" size=\"25\"><br><BR>
<% Else %>
<input name=\"navn\" value=\"<%=Request.Cookies(\"12tri\")(\"navn\")%>\" size=\"25\"><BR><BR>
<% End If %>
<B>E-mailadresse:</B><BR>
<% If Request.Cookies(\"12tri\")(\"email\") = \"\" Then %>
<input type=\"text\" name=\"email\" size=\"25\"><br><BR>
<% Else %>
<input name=\"email\" value=\"<%=Request.Cookies(\"12tri\")(\"email\")%>\" size=\"25\"><BR><BR>
<% End If %>
<B>Overskrift: </b> (obligatorisk)<BR><input type=\"text\" name=\"overskrift\" value=\"\" SIZE=\"25\"><BR><BR>
<B>Indhold:</b> (obligatorisk)<BR>
<textarea name=\"besked\" cols=\"55\" rows=\"10\"></textarea><BR><BR>
<input type=\"submit\" value=\"OPRET INDLÆG\" NAME=\"action\">
</form>

Jeg ved ikke om de få asp linjer kan forvirre javascripet, men jeg vil mene at siden bliver genereret af serveren sådan at der bliver vist en alm formular hvis jeg klikker vis kinde på en side hvor formularen er genereret af serveren ser det således ud:

<form method=\"post\" action=\"save.asp\">
<B>Navn:</b> (obligatorisk)<BR>
<input type=\"text\" name=\"navn\" size=\"25\"><br><BR>
<B>E-mailadresse:</B><BR>
<input type=\"text\" name=\"email\" size=\"25\"><br><BR>
<B>Overskrift: </b> (obligatorisk)<BR><input type=\"text\" name=\"overskrift\" value=\"\" SIZE=\"25\"><BR><BR>
<B>Indhold:</b> (obligatorisk)<BR>
<textarea name=\"besked\" cols=\"55\" rows=\"10\"></textarea><BR><BR>
<input type=\"submit\" value=\"OPRET INDL&AElig;G\" NAME=\"action\">
</form>
Jeg syens det ser rigtigt ud, men det virker bare ikke, så jeg håber at nogen kan hjælpe

Det er kun felterne markeret med (obligatorisk), dvs. navn, overskrift, og besked, som skal checkes

Morten
morten@12tri.dk
Avatar billede jakoba Nybegynder
23. september 2001 - 19:01 #1
en grundlæggende tilng du mangler er en onsubmit i din <form kommado:

<form method=\"post\" action=\"save.asp\" onsubmit=\"return valider( this )\">

valider definerer vi nedenfor. hvis valider returnerer false bliver formen ikke sendt. Hvis valider returnerer trub bliver formen sendt.

<script>

function valider( frm ) {  // frm er hele Form objektet med alle felterne i
    if ( frm.besked.value == \"12tri er dum\" ) {
        alert( \"fyda for en slem bruger\" );
        return false;    // den bliver ikke submitted
    };
    if ( frm.besked.value.length == 0 ) {
        alert( \"der skal skrives noget i besked feltet.\" );
        return false;
    }
    return true;  // hvis alle tests var OK.
};

mvh JakobA

}
Avatar billede jakoba Nybegynder
23. september 2001 - 19:05 #2
til den form du viser ville:

<script>

function valider( frm ) {  // frm er hele Form objektet med alle felterne i
    if ( frm.navn.value.length == 0 ) {
        alert( \"husk at skrive dit navn\" );
        return false;    // den bliver ikke submitted
    };
    if ( frm.overskrift.value.length == 0 ) {
        alert( \"der skal skrives noget til overskrift.\" );
        return false;
    }
    if ( frm.besked.value.length == 0 ) {
        alert( \"der skal skrives noget i besked feltet.\" );
        return false;
    }
    return true;  // hvis alle tests var OK.
};

</script>

være en mulig valider funktion.

mvh JakobA
Avatar billede 12tri Nybegynder
23. september 2001 - 19:22 #3
--> jakoba

din kode virker fint netscape, men i ie5.5 sker der intet uanset om der skrives noget i felterne eller ej. Trykkes der på submit-knappen sker der ganske enkelt ikke noget, værdierne fra formularen bliver ikke sendt, og der popper ingen alert op
Avatar billede jakoba Nybegynder
23. september 2001 - 19:28 #4
prøv at udvide med nogen debug alerts:

function valider( frm ) {  // frm er hele Form objektet med alle felterne i
  alert( \"valider: start.\" );
    if ( frm.navn.value.length == 0 ) {
        alert( \"husk at skrive dit navn\" );
        return false;    // den bliver ikke submitted
    };
alert( \"valider: navn OK.\" );
    if ( frm.overskrift.value.length == 0 ) {
        alert( \"der skal skrives noget til overskrift.\" );
        return false;
    }
alert( \"valider: overskrift OK.\" );
    if ( frm.besked.value.length == 0 ) {
        alert( \"der skal skrives noget i besked feltet.\" );
        return false;
    }
alert( \"valider: alt OK.\" );
    return true;  // hvis alle tests var OK.
};

og fortæl hvad der så kommer ud af det.
Avatar billede 12tri Nybegynder
23. september 2001 - 19:31 #5
Ok prøver lige - vender snart tilbage
Avatar billede jakoba Nybegynder
23. september 2001 - 19:39 #6
bruger du evt navnet valider til noget andet et sted på den side?

hvis du gør så kald funktionen noget andet (og husk at rette tilsvarende i onsubmit handleren)
Avatar billede 12tri Nybegynder
23. september 2001 - 19:41 #7
Nej jeg bruger ikke valider andre steder
Avatar billede jakoba Nybegynder
23. september 2001 - 19:46 #8
ligger script-sektionen med funktionen i head?
så prøv:
<form method=\"post\" action=\"save.asp\" onsubmit=\"return window.valider( this )\">

ligger den i body?
så prøv:
<form method=\"post\" action=\"save.asp\" onsubmit=\"return document.valider( this )\">

som regel ville jeg placere den i <head.
og forvente at det virkede også uden window. foran.

mvh JakobA
Avatar billede 12tri Nybegynder
24. september 2001 - 09:31 #9
Sidder lige ved skolens pc, men scriptet har jeg sat i <head>
Avatar billede jakoba Nybegynder
24. september 2001 - 12:17 #10
virker det stadig ikke?  Det skulle det søreme.

kan du evt poste et link til siden, eller hele siden.
Avatar billede 12tri Nybegynder
24. september 2001 - 14:45 #11
Jeg har ikke mulighed for at teste her på skolens pc, og siden er ikke uploadet.
Avatar billede 12tri Nybegynder
24. september 2001 - 15:40 #12
Selve valideringen virker fint nu. Men der er nogle ting som jeg gerne vil have ændret.

Der popper altid (når man submitter) en alert op som siger &#8221;valider: start.&#8221; Den vil jer gerne undgå.
Desuden vil jeg gerne have fjernet de alertes som popper op når indtastninger er korrekt eks &#8221;navn ok&#8221;. Således at hvis formularen er korrekt udfyldt skal den blot sendes, og man slipper for at trykke &#8221;OK&#8221; 4 gange.

Kan det laves ? &#8211; jeg kan sq ikke finde ud af det der JavaScript (har prøvet)

Morten
morten@12tri.dk
Avatar billede 12tri Nybegynder
24. september 2001 - 15:41 #13
&#8221; = \"

Indlæget er en kori fra word, og det virker ikke helt
Avatar billede jakoba Nybegynder
24. september 2001 - 16:00 #14
Det er blot de debug-linier jeg satte ind. nedenfor har jeg slettet dem:

function valider( frm ) {  // frm er hele Form objektet med alle felterne i
    if ( frm.navn.value.length == 0 ) {
        alert( \"husk at skrive dit navn\" );
        return false;    // den bliver ikke submitted
    };
    if ( frm.overskrift.value.length == 0 ) {
        alert( \"der skal skrives noget til overskrift.\" );
        return false;
    }
    if ( frm.besked.value.length == 0 ) {
        alert( \"der skal skrives noget i besked feltet.\" );
        return false;
    }
    return true;  // hvis alle tests var OK.
};

mvh JakobA
Avatar billede 12tri Nybegynder
24. september 2001 - 18:23 #15
Jeg jeg fik også slettet dem selv så det virker fint nu - mange tak for hjælpen.

Morten
Avatar billede jakoba Nybegynder
24. september 2001 - 21:31 #16
takker
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