03. november 2004 - 15:55Der er
13 kommentarer og 1 løsning
Sjekke form om felter er tomme
Jeg har en form med over 130 felter som må fylles ut, hvordan kan jeg sjekke om noen er tomme? alle må fylles ut!
Er det noen som vet hvordan dette kan løses? Dette virker ikke!
for i=1 to Request.Form.Count Response.Write(Request.Form(i) & "<br>") If Request.Form.Item(i) = "" Then error = error & "- Feltet " Request.Form(i) " må fylles ut! \n" End If next
If error <> "" Then Response.Clear %><html> <body onload="window.alert('En feil oppstod! \n<% =error %>'); window.history.back();"> </body></html><% Response.End End If
for i=1 to Request.Form.Count Response.Write(Request.Form(i) & "<br>") If Request.Form.Item(i) = "" Then error = error & "- Feltet " & Request.Form(i) & " må fylles ut! \n" End If next
If error <> "" Then Response.Clear %><html> <body onload="window.alert('En feil oppstod! \n<% =error %>'); window.history.back();"> </body></html><% Response.End End If
Lige lidt jeg plejer at lave anderledes - men det kan også bare være mig!
For Each Field in Request.Form If Len(Request.Form(Field)) = 0 Then 'tjekker længden af inputtet for inputboxen fejl = fejl& Field End If Next
jeg tror også jeg ville lave nedenstående anderledes:
If error <> "" Then Response.Clear %><html> <body onload="window.alert('En feil oppstod! \n<% =error %>'); window.history.back();"> </body></html><% Response.End End If
-> Altså lave det om til! <% If error <> "" Then Response.Redirect "dinside.asp?fejl=1" 'fejl=1 skal angive hvad fejlen er End If %>
På "dinside.asp" kan du så fange fejlen og lave din alert evt.!
Er "error" ikke et reserveret ord? On Error resume next - jeg undrer mig bare.
Scriptet skriver til databasen som den skal men jeg må få sjekket dataene. Håpet jeg kunne få gjort det uten å måtte lage en if setning på hver eneste variabel.
Dette virker men er det mulig å få med input navnet ikke valuen?
for each i in Request.Form 'Response.Write(Request.Form(i) & "<br>") If Len(Request.Form.Item(i)) = 0 Then error = error & "- Feltet må fylles ut! \n" End If next
Virker ikke! Den tar med valuen! Eller så nekter den å kjøre!
for each i in Request.Form 'Response.Write(Request.Form(i) & "<br>") If Len(Request.Form.Item(i)) = 0 Then error = error & "- Feltet " & Request.Form.Item(i) & " må fylles ut! \n" End If next
Det jeg skrev til at starte med virker altså fint - her hos mig - så jeg ved ikke hvad du har gang i Med Request.Form.Item(i). Nedenstående virker lokalt her - så der burde ikke være den store forskel i det - det er simpel asp.
<% For Each Field in Request.Form If Len(Request.Form(Field)) = 0 Then 'tjekker længden af inputtet for inputboxen fejl = fejl & "- Feltet " & Field & " må fylles ut! \n" End If Next
For Each Field in Request.Form If Len(Request.Form(Field)) = 0 Then 'tjekker længden af inputtet for inputboxen fejl = fejl & "- Feltet " & Field & " må fylles ut! \n" Else fejl = fejl & "- Alle felt er fylt ut!" End If Next
det vil sige at du i toppen af din side har et sted der fanger:
If Request.Querystring("action") = "save" then
For Each Field in Request.Form If Len(Request.Form(Field)) = 0 Then 'tjekker længden af inputtet for inputboxen fejl = fejl & "- Feltet " & Field & " må fylles ut! \n" End If Next
If fejl <> "" then fejl = "- Alle felt er fylt ut!" End If
For Each Field in Request.Form If Len(Request.Form(Field)) = 0 Then 'tjekker længden af inputtet for inputboxen fejl = fejl & "- Feltet " & Field & " må fylles ut! \n" Else fejl = fejl & "- Alle felt er fylt ut!" End If Next
problemet er at du ikke har placeret det i samme form - og derfor kan du ikke "fange"/gennemløbe den sådan der. Hvis du havde placeret alle i samme for - så var det intet problem.
og løkken ser ikke sådan ud - tjek mit sidste indlæg.
/hiks
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.