Avatar billede Slettet bruger
23. januar 2004 - 15:36 Der er 9 kommentarer og
3 løsninger

for each validering

Hej,

Jeg har lavet en validering med følgende opbygning

if str1 = "" then
  strFejl = "bla"
elseif str2 = en ugyldig mail then
  strFejl = "bla"
etc. etc.
end if

og skriver så strFejl ud, men hvordan kan jeg ændre det således at jeg kan få listet alle fejl, f.eks. med
<ul>
<li>Fejl1</li>
<li>Fejl2</li>
</ul>
Avatar billede emetico Nybegynder
23. januar 2004 - 16:36 #1
hvad med

if str1 = "" then
strFejl = strFejl & "Text<br></font>"
end if

if str2 = "" then
strFejl = strFejl & "Text<br></font>"
end if
Avatar billede medions Nybegynder
23. januar 2004 - 16:39 #2
Fx. sådan her
strErr = ""

If str1 = "" Then
  strErr = strErr & "Streng1 var tom!" & ","
ElseIf str2 = ""
  strErr = strErr & "Streng2 var tom!" & ","
End If

arrErr = Split(strErr,",")
For i = 0 To UBound(arrErr)
  Response.Write("<li>" & arrErr(i) & "</li>"
Next

//>Rune
Avatar billede Slettet bruger
23. januar 2004 - 16:50 #3
har lige lavet den til en rutine

' Opbyg array med fejlkoder, print dem ud i listorder
sub printFejl(strFejl)
    arrFejl = split(strFejl,",")
    for i = 0 to ubound(arrFejl)
        response.write("<li>" & arrFejl(i) & "</li>")
    next
end sub
Avatar billede Slettet bruger
23. januar 2004 - 16:55 #4
Men hmm, den udskriver ikke alle fejlene..

Se engang

    strFejl = ""
    if strBruger = "" or Len(strBruger) < 3 Then
          strFejl = strFejl & "Du skal angive et brugernavn p&aring; minimum 3 og maksimalt 12 bogstaver." & ","
    elseif IsEmail(strEmail) = false then
          strFejl = strFejl & "Den indtastede emailadresse ser ud til at v&aelig;re ugyldig." & ","
    elseif strKodeord = "" or Len(strKodeord) < 3 then
          strFejl = strFejl & "Dit kodeord skal v&aelig;re p&aring; mindst 4 bogstaver." & ","
    elseif request.form("regler") = "" then
          strFejl = strFejl & "Du skal acceptere regler og betingelser for brug af webstedet." & ","
    end if

og et kald - call printFejl(strFejl) giver kun

<li>Du skal angive et brugernavn p&aring; minimum 3 og maksimalt 12 bogstaver.</li><li></li>
Avatar billede medions Nybegynder
23. januar 2004 - 17:00 #5
strFejl = ""
    if strBruger = "" or Len(strBruger) < 3 Then
          strFejl = strFejl & "Du skal angive et brugernavn p&aring; minimum 3 og maksimalt 12 bogstaver." & ","
    elseif CBool(IsEmail(strEmail)) = false then
          strFejl = strFejl & "Den indtastede emailadresse ser ud til at v&aelig;re ugyldig." & ","
    elseif strKodeord = "" or Len(strKodeord) < 3 then
          strFejl = strFejl & "Dit kodeord skal v&aelig;re p&aring; mindst 4 bogstaver." & ","
    elseif request.form("regler") = "" then
          strFejl = strFejl & "Du skal acceptere regler og betingelser for brug af webstedet." & ","
    end if

//>Rune
Avatar billede Slettet bruger
23. januar 2004 - 17:05 #6
rune > Der er da ingen forskel - du tilføjer bare CBool, hvilket er unødvendigt da IsEmail() returnerer boolsk.
Avatar billede Slettet bruger
23. januar 2004 - 17:19 #7
ah, har fixet det nu - det var if strukturen den var galt med

    strFejl = ""
    if strBruger = "" or Len(strBruger) < 3 Then
          strFejl = strFejl & "Du skal angive et brugernavn p&aring; minimum 3 og maksimalt 12 bogstaver." & ","
        if IsEmail(strEmail) = false then
              strFejl = strFejl & "Den indtastede emailadresse ser ud til at v&aelig;re ugyldig." & ","
            if strKodeord = "" or Len(strKodeord) < 3 then
                  strFejl = strFejl & "Dit kodeord skal v&aelig;re p&aring; mindst 4 bogstaver." & ","
                if request.form("regler") = "" then
                      strFejl = strFejl & "Du skal acceptere regler og betingelser for brug af webstedet." & ","
                end if
            end if
        end if
    end if
Avatar billede Slettet bruger
23. januar 2004 - 17:22 #8
Hovsa, faktisk sådan her

    if strBruger = "" or Len(strBruger) < 3 Then
          strFejl = strFejl & "Du skal angive et brugernavn p&aring; minimum 3 og maksimalt 12 bogstaver." & ","
    end if
    if IsEmail(strEmail) = false then
          strFejl = strFejl & "Den indtastede emailadresse ser ud til at v&aelig;re ugyldig." & ","
    end if
    if strKodeord = "" or Len(strKodeord) < 3 then
          strFejl = strFejl & "Dit kodeord skal v&aelig;re p&aring; mindst 4 bogstaver." & ","
    end if
    if request.form("regler") = "" then
        strFejl = strFejl & "Du skal acceptere regler og betingelser for brug af webstedet."
    end if
Avatar billede runesoft Nybegynder
23. januar 2004 - 21:06 #9
hmm..  jeg er ikke så glad for streng-trunkeringer, sådan ville jeg gøre:

dic = createObject("Scripting.dictionary")

'hver fejl noteres således
dic.add dic.count, "Der er fremkommet en fejl"

'skriv liste af fejl ud
response.write "<ul><li>" & join(dic.Items,"</li><li>") & "</li></ul>"
Avatar billede Slettet bruger
24. januar 2004 - 12:48 #10
runesoft > Er der noget performancemæssigt at hente ved din metode?
Avatar billede burningice Nybegynder
24. januar 2004 - 22:36 #11
ezolu>> der er faktisk rimelig meget at hente... er ikke 100% sikker med vbscript, men normalt er en variabel af typen string atomar, dvs. at man kan ikke ændre på den efter den er oprettet. Det betyder i praksis, at når du sammensætter to strenge får du faktisk en ny tredie streng ud af det. Så kan du jo selv regne på hvor mange variabler der egentlig bliver oprettet ved dit lille stunt.
Avatar billede Slettet bruger
16. februar 2004 - 18:35 #12
Er løbet ind i et andet problem..

Valideringen tager ikke højde for at felterne kan være forkert udfyldte i anden rækkefølge end den der er angivet i if strukturen.

F.eks. så kommer der en <li> for meget for gang hvis request.form("regler") <> "" men de andre er tomme. Hvordan ordner jeg det?
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