• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

How to uncheck checkbox after form has been submitted

Explorer ,
Jul 29, 2009 Jul 29, 2009

Copy link to clipboard

Copied

Hi,

I have a complex form which gets submitted to itself using post.  I have added a checkbox to this form.

           

If a user submitted a form without filling in all the required fields then the form displays a message but retains the values that user entered earlier for convenience. When a user sumitts the form sucessfully, I would like to uncheck the checkbox. Any ideas as how to do it.

I tried <cfparam name="form.post_red" default=""> but it didn’t work.

Any ideas?

Thanks in advance.

Joe Green

TOPICS
Advanced techniques

Views

6.5K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Jul 29, 2009 Jul 29, 2009

Copy link to clipboard

Copied

Don't do whatever you are doing to check it in the first place.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Jul 29, 2009 Jul 29, 2009

Copy link to clipboard

Copied

<cfif form.post_red EQ "on">

     <cfset form.post_red = "off">

</cfif>

You may have to replace the "on" with a 1 and the "off" with a 0. Try it both ways and if it doesn't work post back.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jul 30, 2009 Jul 30, 2009

Copy link to clipboard

Copied

In a classic, HTML, "self-posting form," you know that (except on the initial entry into the page) you're going to be getting some POST data representing whatever's been entered on that form.  So, when and if you see that, the first thing that you must do is to process and evaluate those inputs.  I usually process these into a struct which I keep in the Session pool, merging whatever POST-variables I find with what may already be there.

The second thing that an HTML page-handler always does, whether there were any POST variables present or not, is to build the HTML necessary to render the new, updated page-image on the user's screen.  You therefore determine, each and every time, whether that <cfinput type="checkbox"> tag, which you have for whatever reason just decided to generate, should, or should not, include the keyword, checked.

The HTML you prepare will then be sent back to the user's browser and displayed there:  it is an entirely-new HTML stream that just happens to be quite similar to the last one that the browser received.  If the browser did its work well, there is no "screen flicker" and it simply appears to the user that almost nothing changed (the checkbox is now un-checked).  But in fact, every HTML stream stands alone.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jul 30, 2009 Jul 30, 2009

Copy link to clipboard

Copied

I tried  "off" and 0, both didn't work. I guess I could use hidden field to control checkbox. It's strange that in coldfusion we cannot control the status of a checkbox.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Jul 30, 2009 Jul 30, 2009

Copy link to clipboard

Copied

Do a <cfdump var=#form#> on your action page and see what value you are getting for your checkboxes. Do this with and without them checked and write back what you see. I do these quite a bit so there's a way to get it figured out.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jul 30, 2009 Jul 30, 2009

Copy link to clipboard

Copied

I did <cfdump var=#form#> and it shows the value of the checkbox and checkbox is checked.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Jul 30, 2009 Jul 30, 2009

Copy link to clipboard

Copied

You can use cf to control the status of a check box.

<input type ="checkbox" name="whatever"

<cfif something>checked="checked"</cfif>

>

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jul 30, 2009 Jul 30, 2009

Copy link to clipboard

Copied

I did following but it doesn't work because user checked the box before submitting, after the form has been submitted to itself, the checkbox remains checked.

<input name="post_red" type="checkbox" value="yes" <cfif isdefined("form.post_red")><cfoutput>checked</cfoutput></cfif>>Red

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Jul 30, 2009 Jul 30, 2009

Copy link to clipboard

Copied

If you could post more code that could help.

Anyhow I've thrown together some code that may help you understand it a little clearer. Create a new page and paste this in. It should show you how CF handles the checkbox values.

<cfoutput>

<cfparam name="form.chk_1" default="" />


form.chk_1 default value or after being set in the form:<br />
<cfdump var="#form.chk_1#">

<form action="#cgi.SCRIPT_NAME#" method="post" name="test">

<input name="chk_1" type="checkbox" <cfif form.chk_1 EQ "on">checked</cfif><br /><br />

<input name="submit" type="submit" value="Submit" />

</form>

Form.chk_1 value after manually setting it:<br />
<!--- If it's on I want to turn it off --->
<cfif form.chk_1 eq "on">
    <cfset form.chk_1 = "off">
</cfif>

<cfdump var="#form.chk_1#">


</cfoutput>

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Jul 30, 2009 Jul 30, 2009

Copy link to clipboard

Copied

LATEST

You are on the right track with that bit of code.  The problem is that you are using a simple isDefined function to solve a logic problem that is not that simple.

I interpret your opening post to say, if the user screws up, keep the form fields.  If he submits the form correctly, don't check the box.   Does this accurately describe what you are trying to accomplish?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation