We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

How do I reset Session Variables (radio buttons) when Reset button is selected?

DRSLT
DRSLT asked
on
Medium Priority
513 Views
Last Modified: 2013-12-24
I have a flash form with radio boxes.  The user must select a radio button before submitting the form (required="yes").  If they don't fill out, complete, or check a required field they receive the flash messagebox telling them that it cannot be submitted because field(s) xxx are not completed.  All works well!!!

However, when the user clicks a reset button (<cfinput type="reset" ...>) then fills out all of the required fields with the exception of the radio button they are able to submit the form because the reset does not clear out the original selection for the radio button.

If I use a <CFDUMP var="#form#> I see that in the first instance the variable is not even initialized and that is whay it is being caught by the <cfinput type="radio"...required="yes"...>.  When I submit the form after a radio button has been clicked then the reset button is pressed I see that the variable is initialized using CFDUMP and that it is an empty string.

Is there a way to use the onclick function of the reset button to kill it (such as structclear(inputname)) so that the user cannot submit without selecting the radio button again?
Comment
Watch Question

You can extend flash forms by using the <cfformitem type="script"> tag and you could then write a function that would check the state of the actual control on the flash form.  I'm not the best at actionscript so I might have a mistake here that someone else will catch but something like:

<cfformitem type="script">
function checkRadio()
{
if(radioControlName.selectedData != '')
   {
      return true;
      }
      else
      {
      alertMsg('Please select one of the radio buttons');
                return false;
   }
}
</cfformitem>

Then onSubmit just 'return checkRadio()'.

I probably have something wrong so hopefully someone that is better with actionscript can help.  Here is some background info which helps with the concepts tho:

http://www.macromedia.com/cfusion/webforums/forum/messageview.cfm?catid=22&threadid=1126188&enterthread=y

http://www.cfform.com/flashforms/invoke.cfm?objectid=9C3432E6-4E22-1671-5365802394A2DD57&method=full

Alternately you could write a function to set the value back to whatever the default was manually and add the call to that function to the onClick for the reset button.  That way it would be in the initial state.

Hope that helps some.

Author

Commented:
Thanks for the response.

I thought about using this sort of tactic as a last resort, but I would like to just be able to reinitialize all of the controls on the page so that the <...required = "yes"...> attribute of the control which is built into flash forms could simply do what it is supposed to do.  My other 'last resort' option was to submit the form with a reset button and reload the page and then if the form value of the reset button is present I can then clear all session variables using structclear and continue loading the form resulting in the empty form being redisplayed.
Write your own validation and forget about the validate attribute when using radio buttons.  It is the only good way!

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Author

Commented:
I wanted to split the points on this but it didn't work.
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.