Great!  Thanks, Joe...
  -----Original Message-----
  From: Joe Rinehart [mailto:[EMAIL PROTECTED]
  Sent: Wednesday, June 23, 2004 11:26 AM
  To: CF-Talk
  Subject: Re: Is there a way to have all CFCatch messages display at once?

  Rick -

  StructIsEmpty() returns a boolean representing whether or not the
  structure, is, well, empty.

  -joe

  ----- Original Message -----
  From: Rick Faircloth <[EMAIL PROTECTED]>
  Date: Wed, 23 Jun 2004 10:23:50 -0400
  Subject: RE: Is there a way to have all CFCatch messages display at once?
  To: CF-Talk <[EMAIL PROTECTED]>

  Is there a way to use a wildcard to check and see if a certain structure

  say FormErrors contains any elements as opposed to having to check

  for specific structure element contents.

  In other words, can I code <CFIF StructKeyExists(FormErrors.*), where * is
a

  wildcard,

  instead of having to check for each item, such as:

  <CFIF StructKeyExists(FormErrors.FirstName)

        or StructKeyExists(FormErrors.LastName)

        or etc...>

  I want to be able to send a general alert to a form user that there are
form

  errors to be check below interspersed in the form if any errors exists at

  all,

  without having CFIF through each one...

  ???

  Rick

    -----Original Message-----

    From: Rick Faircloth [mailto:[EMAIL PROTECTED]

    Sent: Wednesday, June 23, 2004 9:18 AM

    To: CF-Talk

    Subject: RE: Is there a way to have all CFCatch messages display at
once?

    An interesting approach, Joe.

    I'm using CF 4.5 still if that matters, and haven't used <CFINPUT>

    in a couple of years.

    Does the "message" part of the CFINPUT tag

    appear inside the form field? (I guess it would...)

    Then if there were an error, the "formErrorFields" error message

    would then appear below the field again?  (As you have

    it coded, right?

    The only problem I see with that approach is that I display

    a user's original entry back into the fields of the form, so they

    can see what they may have done wrong...

    This is how I code all my <INPUT>'s at this point...

    <CFIF IsDefined("Form.Submit")>

         <INPUT Name="FirstName" Type="Text"

                      Value="<CFOUTPUT>#Form.FirstName#</CFOUTPUT>"

                      Size="30" MaxLength="30" Class="TextInput01">

    <CFELSE>

         <INPUT Name="FirstName" Type="Text" Value=""

                     Size="30" MaxLength="30" Class="TextInput01">

    </CFIF>

    But, I guess I could still make use of a structure instead of an array,

    and just use it the same way I'm currently using the array to display

    messages...

    Using a structure instead of an array would make the error messages
easier

    to keep up with since they incorporate the name of the formfield...A
form

    with

    38 entry fields could get a little confusing...ErrorMessage[32][1]

    (Hmmm...now

    which field was that, anyway...)  :o)

    Thanks for the tip!  Sounds good!

    Rick

      -----Original Message-----

      From: Joe Rinehart [mailto:[EMAIL PROTECTED]

      Sent: Wednesday, June 23, 2004 8:08 AM

      To: CF-Talk

      Subject: Re: Is there a way to have all CFCatch messages display at

  once?

      Rick,

      Instead of using a two-dimensional array, why not just use a
structure?

      At the beginning of your page, you could do this:

      <cfset formErrorFields = structNew()>

      Then, if a given field (say, firstname was blank) had something wrong

      with it, do:

      <cfif not len(trim(form.firstname))>

        <cfset formErrorFields.firstname = "Please enter a first name.">

      </cfif>

      Then, in your form:

      <cfinput type="text" name="firstname" required="true" message="Please

      enter a first name"><br>

      <cfif structKeyExists(formErrorFields, firstname)>

        <cfoutput>#formErrorfFields.firstname#</cfoutput>

      </cfif>

      Granted, this limits you to only being able to have one thing wrong

      with each field at a time, but there's no reason each element couldn't

      be an array containing multiple error messages per field.

      -Joe

      ----- Original Message -----

      From: Rick Faircloth <[EMAIL PROTECTED]>

      Date: Wed, 23 Jun 2004 08:07:25 -0400

      Subject: RE: Is there a way to have all CFCatch messages display at

  once?

      To: CF-Talk <[EMAIL PROTECTED]>

      I've worked out a way using a two dimensional array

      that contains the error message in the first dimension and set the

      second dimension in the row to "Yes" if there is an error found.

      Formfield 1 message is ErrorMessage[1][1] and ErrorMessage[1][2] is
set

  to

      "Yes" or "No".

      (No by default)

      Formfield 2 message is ErrorMessage[2][1], etc...

      None of this is dynamic, just hard coded.

      I just validate each form field and if there is a problem, set

      ErrorMessage[1][1]

      to hold whatever message is appropriate for the field and

    ErrorMessage[1][2]

      to "Yes".

      Then, there is a row just above each form field and its title which
will

      display

      it's contents, ErrorMessage[1][1], etc., if ErrorMessage[1][2] has
been

    set

      to "Yes."

      Now, all problems can be addressed at once, instead of one at a

    time...much

      better!

      For long forms, and as a standard of practice for all forms, I'll

  trigger

    a

      message at the

      top of the form which states that there are errors in the form input,

  and

    to

      please check

      your entries and correct as necessary.

      Works great so far!

      And Dick...even colorblind folks should be able to tell when a

    light-colored

      background field

      with dark text is changed to a dark-colored background with light

      text...right?

      Rick

        -----Original Message-----

        From: Dick Applebaum [mailto:[EMAIL PROTECTED]

        Sent: Wednesday, June 23, 2004 12:56 AM

        To: CF-Talk

        Subject: Re: Is there a way to have all CFCatch messages display at

    once?

        On Jun 22, 2004, at 5:55 PM, Adrocknaphobia wrote:

        > Although rather than blast a user with all

        >  those errors, why not do something more subtle like highlight the

        >  invalid form fields with another color.

        >

        >

        I think you want to do both -- a list of errors and highlighted

        fields-- maybe highlight by default and a popup, on demand, that
lists

        all the errors ( especially useful if the user has to scroll the

        screen)

        FWIW, there are a lot of color-blind users who surf the web-- at
least

        that's what I have been told!

        HTH

        Dick

        "In times like these, it helps to recall that

        there have always been times like these."

        - Paul Harvey
[Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings] [Donations and Support]

Reply via email to