I have a simple form which has four fields named firstName, lastName, address and phone number.
After a user fills this form and clicks the submit button, if everything goes fine, I am redirecting that user to a success page.
But on clicking the browser back button from the success page the form field values are repopulating on the form. How can I prevent this from happening?
I have already tried this code:
<cfheader name="cache-control" value="no-cache, no-store, must-revalidate">
<cfheader name="pragma" value="no-cache">
<cfheader name="expires" value="#getHttpTimeString(now()-1)#">
But it is not working.
Repopulating form fields is a good thing, stop trying to break it.
If what you actually want is to prevent duplicate submissions, send a unique id (e.g. UUID) along with the form and keep track of the ones you've received recently (how many to keep track of depends on your application).
If you receive a duplicate you can either ignore it (and display appropriate message), or go a step further: check whether the received data has already been submitted or whether it's an attempt to change the previous submission (i.e. fixing a typo), or to create a new record (maybe firstname and phone were changed), or prompt the user to choose, or whatever.
This works when I run it. First, file testform.cfm
This is formtarget.cfm
We have those three cfheader tags in a custom tag.
Repopulating the FORM fields is a good think i know but we can disable it by using autocomplete="off"