Here is an example that has worked well for me:

<cfscript>
  errorMessage = "";
  errors = 0;
  crlf = chr(13) & chr(10);

  /* this function can be called from a udf library */
  function SpaceCap(text) {
    return REReplace(text, "([.^[:upper:]])", " \1","all");
  }

  if ( IsDefined('Form.addNew') OR IsDefined('Form.save')) {
    numericList = "DefaultShipping";  // comma "," delimited list
    /*************************************************************
    * pipe "|" delimited list within a comma "," delimited list  *
    * field name|required|field length                        *
    *************************************************************/
    requiredList = "ShippingFirstName|TRUE|30,ShippingLastName|TRUE|30,ShippingAddress1|TRUE|50,ShippingAddress2|FALSE|50,ShippingCity|TRUE|30,ShippingState|TRUE|2,ShippingPostal|TRUE|10,ShippingCountry|TRUE|50,ShippingPhone|TRUE|25,DefaultShipping|TRUE|1";
    arrRequired = ListToArray(requiredList);
    arrReqLen = ArrayLen(arrRequired);
    for (i=1 ;i LTE arrReqLen ;i=i+1 ){
      temp = ListGetAt(arrRequired[i],1,"|");
      tempRequired = ListGetAt(arrRequired[i],2,"|");
      tempLength = ListGetAt(arrRequired[i],3,"|");
      if ( NOT IsDefined(temp) AND tempRequired IS "TRUE") {
        errorMessage = errorMessage & "<li>#SpaceCap(temp)# is required.</li>";
        errors = 1;      
      }else{
        if ( Trim(Evaluate(temp)) IS "" AND tempRequired IS "TRUE") {
          errorMessage = errorMessage & "<li>#SpaceCap(temp)# is required.</li>";
          errors = 1;         
        }else{
          if ( Len(Evaluate(temp)) GT tempLength ) {
            errorMessage = errorMessage & "<li>#SpaceCap(temp)# can only be a maximum of #tempLength# characters.</li>";
            errors = 1;                 
          }
          if ( ReFindNoCase(numericList,temp) ) {
            if ( NOT IsNumeric(Evaluate(temp)) ) {
              errorMessage = errorMessage & "<li>#SpaceCap(temp)# must be a number.</li>";
              errors = 1;
            }               
          }
          if ( temp IS "email") {
            if ( NOT IsEmail(Evaluate(temp)) ) {
              errorMessage = errorMessage & "<li>E-Mail must be a valid email address.</li>";
              errors = 1;              
            }
          }
        }
      }
    }
    if ( Trim(errorMessage) IS NOT "") {
      errorMessage = "<table border=0><tr><td><ul>" & crlf & errorMessage & crlf & "</ul></td></tr></table>";
    }
  }
</cfscript>

<cfif errors EQ 1 >
  <cfthrow errorMessage="#errorMessage#" type="goBack">
<cfelse>
  more code...
</cfif>

Cheers,
Stan Winchester

>Let see...so how would that be coded?
>How do I validate the "entire" form as opposed to the typical technique
>below?
[Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings] [Donations and Support]

Reply via email to