if dette formfelt er galt på den then ... elseif dette formfelt er galt på den then ... end if
er der ikke nogen der har en ide til at validere således at alle felter bliver valideret på samme tid og at der bliver udskrevet en <ul><li> med de fejl der måtte være?
for each fld in request.form if len(request.form(fld)) = 0 then ' feltet er ikke udfyldt strList = strList & "<li>" & fld & " er ikke udfyldt.</li>" & vbcrlf end if next
Den skal naturligvis udbygges, så den tager hånd om alle de valideringer du ønsker at gennemføre...
Så kunne man jo lige start og slutte showet ordenligt af... :)
strList = "<ul>" & vbcrlf for each fld in request.form if len(request.form(fld)) = 0 then ' feltet er ikke udfyldt strList = strList & " <li>" & fld & " er ikke udfyldt.</li>" & vbcrlf end if next strList = strList & "</ul>" & vbcrlf
Synes godt om
Slettet bruger
01. november 2005 - 18:00#3
ja - men hvordan det? Det er jo ikke kun null jeg vil validere på, men også allemulige andre ting.. Hvordan gøres det du skriver generelt anvendeligt?
Synes godt om
Slettet bruger
01. november 2005 - 18:11#4
hmm - tror jeg laver det som et array i stedet og så adder jeg bare hver fejl til arrayet...
Umiddelbart lægger du flere if-sætninger ind i løkken,
strList = "<ul>" & vbcrlf for each fld in request.form if len(request.form(fld)) = 0 then ' feltet er ikke udfyldt strList = strList & " <li>" & fld & " er ikke udfyldt.</li>" & vbcrlf elseif not isnumeric(request.form(fld)) then ' feltet er ikke numerisk strList = strList & " <li>" & fld & " er ikke et tal.</li>" & vbcrlf end if next strList = strList & "</ul>" & vbcrlf
Du har dog nogle udfordringer, herunder at finde en metode til hvordan du bestemmer hvad de enkelte felter skal valideres for og det synes jeg jo er lidt svært at gøre helt generisk... det kan være du selv har nogle idéer til denne del?
Synes godt om
Slettet bruger
01. november 2005 - 18:16#6
men på denne måde vil du jo.. hmm - når du tilgår request.form(fld) er det jo den aktuelle og det er ikke hensigten...
Jeg skal da ikke afvise at jeg har misforstået dit oplæg, men hvis du vil lave validering på en form der bliver sendt til serveren, er du vel nød til at løbe igennem felterne - og det er hvad jeg gør (skulle jeg mene)...
Hvis det ikke er det du ønsker, må du lige prøve at forklare lidt mere om hvad du så ønsker at opnå (eller vente på at der kommer en ekspert forbi, som kan se hvad du mener)... :)
Synes godt om
Slettet bruger
01. november 2005 - 18:38#8
bestemt, men det er balancen mellem det generelle og det specifikke jeg ønsker at få frem her. Hvis man bare løber felterne i gennem med for each, så evaulerer vi på alle felter på en gang (og sondrer dermed overhovedet ikke mellem hvilket felt vi har med at gøre - dvs. hvis vi vil vide om feltet er et email-felt, har vi ikke, i dit løsningsforslag, nogen mulighed for at gøre det).
En anden mulighed kunne være at tilgå navnet på feltet:
if instr(request.form(fld), "email") > 1 then 'kør emailvalidering elseif instr(request.form(fld) "tal") > 1 then 'kør isNumeric validering ... end if
Yes, men det er jo netop det jeg siger, den metode jeg foreslår, mangler. En mulighed er at opsætte et regelsæt for hvordan du navngiver dine felter en anden er at definere et andet sted hvilke felter der skal valideres hvordan. Det er jo op til dig at beslutte hvordan du synes bedst om at arbejde med data... men en iteration med for each kan stadig godt bruges i kombo med det du siger, så det lyder som en metode...
Synes godt om
Ny brugerNybegynder
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.