Hi,
I wanted a little more than the basic form field validation offered by
CFForm, and so I am validating form field data by placing error messages
in a structure called ErrorStruct and setting the form field name as the
key, so that later I can output it, like so:
<!--- make sure field is numeric, etc. --->
<cfif not IsNumeric(form.WithdrawPrincipal)>
<cfset StructInsert(ErrorStruct, "WithdrawPrincipal", "Withdrawl
Principal is not a number")>
</cfif>
Then, later, reset the form field like so:
<cfif structKeyExists(ErrorStruct,"WithdrawPrincipal")>
<cfset form.WithdrawPrincipal="">
</cfif>
And then of course in the form, the default value is like so:
<input type="text" name="withdrawPrincipal"
value="#form.WithdrawPrincipal#">
Since I've got a lot of fields to validate, I'm trying to loop over the
structure keys and reset values that way, thus simplifying my code. Or
so it would seem:
<cfset lstNumericFields =
"Month,Year,BYPrincipal,BYInterest,AddPrincipal,AddInterest,WithdrawPrin
cipal,WithdrawInterest,EYPrincipal,EYInterest,EYTotal">
<cfloop list="#lstNumericfields#" delimiters="," index="ii">
<cfif structkeyExists(ErrorStruct,"#ii#")>
<cfset myFormField="form.#ii#">
<cfset myformfield.value="0">
<cfoutput>#myformfield# = #myformfield.value#<br></cfoutput>
<!--- this outputs to:
form.month = 0
form.year = 0
form.byprincipal = 0 etc
--->
</cfif>
</cfloop>
I didn't think this through, however, because there is no way to place
the default value of each of these fields in the actual form, which is
located outside of the loop, is there? In other words, the following
code will not work...
<input type="text" name="#myformfield#" value="#myformfield.value#>
..unless I place it in the loop. And since there is so much other
formatting going on in the form, there really is no way to do that. So
now I'm back to manually checking the existence of each key.
(Copy/Paste, Copy/Paste) Is there a more elegant way?
Sincerely,
Andrew
______________________________________________________________________
Structure your ColdFusion code with Fusebox. Get the official book at
http://www.fusionauthority.com/bkinfo.cfm
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists