19. september 2004 - 15:46Der er
7 kommentarer og 1 løsning
Kontaktformular der validerer og husker indhold
Hej.
Jeg har en kontaktformular, som kører via ASP. Indtil videre har jeg valideret indholdet via javascript, men ønsker nu at validere den udelukkende via ASP... Men her rækker mine evner ikke til :-/
Spørgsmål: Hvordan laver jeg en kontaktformular, der via ASP validerer indholdet, og kommer med en fejlmeddelelse hvis et eller flere af felterne ikke er udfyldt?
Det jeg ønsker er en formular der, ligesom den formular man bruger her på Eksperten når man vil poste et spørgsmål som dette, laver en brake hvis man glemmer at vælge kategorien og derefter skriver en fejlmeddelelse.
Du kan evt bruge noget lignende. Formen skal kalde siden selv
<% dim vishtml vishtml=true missing="" if Request.Form("knap")="Send" then if Request.Form("navn") ="" then missing=missing&",Navn" if Request.Form("kode") ="" then missing=missing&",Kodeord" if missing="" then vishtml=false 'gør et eller andet eks Response.redirect else 'vores validering er ikke gået så godt end if
end if%> <html> <body> <% if vishtml=true then %>
<% if missing<>"" then Response.Write "Følgende felter mangler at blive udfyldt : "&right(missing,len(missing)-1) end if %> <form action="start.asp" method="post"> Indtast navn <input type="text" name="navn" value="<%=Request.Form("navn")%>"><%if instr(1,missing,"Navn")>0 then Response.Write "*"%><BR> Indtast kode <input type="text" name="kode" value="<%=Request.Form("kode")%>"><%if instr(1,missing,"Kodeord")>0 then Response.Write "*"%><BR> <Input type="submit" value="Send" name="knap"> </form>
tofte > Jeg kan ikke lige gennemskue dit script :-/
Jeg har disse fire felter der skal valideres: strName = "<input type=""text"" name=""name"" style=""width: 377px; height: 20px;"">" strName = "<input type=""text"" name=""email"" style=""width: 377px; height: 20px;"">" strName = "<input type=""text"" name=""subject"" style=""width: 377px; height: 20px;"">" strName = "<textarea type=""text"" name=""body"" style=""width: 377px; height: 20px;"">"
Hvis brugeren udfylder Navn, Emne og Besked, men glemmer at udfylde Email, skal der vises en fejlmeddelelse (a'la: Du har ikke udfyldt...), men uden at indholdet i de 3 resterende felter slettes når siden genkaldes.
Jeg har brug for et tydeligere eksempel på hvordan dette laves i ASP
Prøver lige igen... Eksperten sendte mit indlæg, inden jeg var færdig :-)
tofte > Jeg kan ikke lige gennemskue dit script :-/
Jeg har disse fire felter der skal valideres: strName = "<input type=""text"" name=""name"" style=""width: 377px; height: 20px;"">" strName = "<input type=""text"" name=""email"" style=""width: 377px; height: 20px;"">" strName = "<input type=""text"" name=""subject"" style=""width: 377px; height: 20px;"">" strName = "<textarea type=""text"" name=""body"" style=""width: 377px; height: 20px;""></textarea>"
Hvis brugeren udfylder Navn, Emne og Besked, men glemmer at udfylde Email, skal der vises en fejlmeddelelse (a'la: Du har ikke udfyldt...), men uden at indholdet i de 3 resterende felter slettes når siden genkaldes.
Jeg har brug for et tydeligere eksempel på hvordan dette laves i ASP...
i toppen undersøger jeg hvile felter som ikke er blevet udfyldt vha: if Request.Form("navn") ="" then missing=missing&",Navn"
hvis feltet ikke er udfyldt, gemmer jeg data om feltnavnet i min variabel missing.
Dette gør jeg med alle de felter som jeg ønsker at validere. Hvis variablen missing er forskellig fra "", så er det jo fordi den indeholder nogle felter som ikke er blevet udfyldt. Det udnytter jeg længere nede til at spørge if missing<>"" then Response.Write "Følgende felter mangler at blive udfyldt : "&right(missing,len(missing)-1) end if
Og sidst men ikke mindst. Her undesøger jeg eks om navnet Navn står i variablen missing, hvis den gør, er de jo fordi feltet ikke er udfyldt og derfor laver jeg en stjerne: <%if instr(1,missing,"Navn")>0 then Response.Write "*"%>
Så alt hvad du skal gøre er sådan set bare i toppen at tilføje en linie for hver felt som du ønsker at validere: if Request.Form("navn") ="" then missing=missing&",Navn"
og ud for hvert felt i din form <%if instr(1,missing,"Navn")>0 then Response.Write "*"%>
Bemærk Navn er det navn du vil have vist, eks "Følgende felter er ikke udfyldt korrekt: Navn"
Hmm... Jeg kan ikke få det til at virke efter hensigten, og har ikke mulighed for at bruge alt for meget tid på det, så jeg holder mig til javascriptet p.t. (det fungerer i det mindste).
Men for at din tid og indsats ikke skal have været forgæves, vil jeg give dig halvdelen af de udlovede points :-)
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.