ASPInput/outputValidering i formarMer om validering
[ Hem ] Allmänt ASP XML SQL ADO HTML CSS VB Java Design Karta
Grunder Input/output VBScript Databaser Tips Exempel

Mer om validering

Starta om denna sida
Prova denna form genom att
  1. Klicka på OK utan att ha fyllt i något av fälten
  2. Klicka på OK med bara namnfältet ifyllt
  3. Klicka på OK med bara adressfältet ifyllt
  4. Klicka på OK med bägge fälten ifyllda
Håll ett öga på adressraden när du provar ovanstående tester

Namn: Fyll i
Adress: Fyll i
 

Koden som validerar indatat, och viderehänvisar till en annan sida om vi har fyllt i bägge fälten:

<%
Function notOK(text)
    ' får inte vara tomt
    If text & "" = "" Then
        notOK = true
    ' man kan även kontollera om det fanns ogiltiga tecken
    Elseif instr(text, ">") or instr(text, "<") Or instr(text, "|") Then
        notOK = true
    Else
        notOK = false
    End If
End Function

' SEND är namet på Submit knappen.
If Request("SEND") & "" <> "" Then
    ' Om det vi gav in inte är OK (t.ex tomt)
    If notOK(Request("MittNamn")) OR notOK(Request("MinAdress")) Then %>

        <br><font color="#FF0000" size="+1">Du måste fylla i alla fälten</FONT>
<%
    Else
        ' Vi har giltigt data
        ' måste se till att det går att sända vidare genom att koda det för URL bruk
        namn = Server.URLEncode(Request("MittNamn"))
        adress = Server.URLEncode(Request("MinAdress"))

        ' dirigera om till en ny sida med värdena som parametrar
        ' Måste vara <% response.Buffer = TRUE %> i början av sidan
        Response.redirect "svaret.asp?Namn=" & namn & "&Adress=" & adress
    End If
End If
%>


<!-- Formens kod (lite förenklad) -->
<FORM METHOD='GET'>
    Namn:
    <INPUT TYPE="TEXT"
            NAME="MittNamn"
            SIZE="20"
            MAXLENGTH="30"
            VALUE="<% =Request("MittNamn") %>">
            <%if notOK(Request("MittNamn")) Then %>
            <font color="#FF0000">Fyll i</FONT>
            <% End If %>
<br>
    Adress:
    <INPUT TYPE="TEXT"
            NAME="MinAdress"
            SIZE="20"
            MAXLENGTH="30"
            VALUE="<% =Request("MinAdress") %>">
            <%if notOK(Request("MinAdress")) Then %>
            <font color="#FF0000">Fyll i</FONT>
            <% End If %>
<br>
    <INPUT name="SEND" TYPE="SUBMIT" VALUE="OK"><br>
    <INPUT TYPE="RESET" VALUE="Töm">
</FORM>

Denna validering fungerar på följande sätt:

  • När vi kommer till sidan så finns det inga parametrar på adressraden utan den är bara ex12.asp.
    Detta gör att SEND parametern kommer att vara tom och If Request("SEND") & "" <> "" Then kommer att ge false som resultat.
  • När vi sedan klicka på OK så kommer SEND att ha ett värde (vilket är i detta fall oväsentligt) och If satsen kommer att ge true som reslultat
    • Vi kontollerar då om datat är korrekt med en egen funktion (som skulle kunna sättas i en separat fil och inkluderas)
    • Om det inte är korrekt så skriver vi ut ett felmeddelande
    • Är allt OK så konverterar vi värdena till URL kompatibla strängar med Server.URLEncode och sänder iväg datat via adressraden till en annan sida
  • När formen laddas så sätts eventuella värden som fanns på adressraden in i rätt fält
    Se t.ex. raden VALUE="<% =Request("MittNamn") %>"
    • Om dett inte finns någon namn så blir det tomt
    • Om det fanns ett namn så skrivs det in i VALUE egenskapen. Detta görs för att vi inte vill att användaren skall behöva skriva om allt, utan bara det som var fel eller tomt

  Validering i formarVBScript
Input/output
Skriva text till sidan
Buffrad utskrift
Användning av arrays
Tid och datum
Data via adressraden
Formhantering (GET)
Formhantering (POST)
De två sätten att sända formdata
En form utan ASP kod
Samma form med kod
Mer om formar
Sända formdata till en annan sida
Validering i formar
Mer om validering


Top
< Validering i formar VBScript>
© Anders Enges, Vörå 2002  | 22.01.01 18:27 Visa asp koden