Make page to tell browser not to cache/preserve input values
Solution 1
Are you explicitly setting the values as blank? For example:
<input type="text" name="textfield" value="">
That should stop browsers putting data in where it shouldn't. Alternatively, you can add the autocomplete
attribute to the form tag:
<form autocomplete="off" ...></form>
Solution 2
From a Stack Overflow reference
It did not work with value="" if the browser already saves the value so you should add.
For an input tag there's the attribute autocomplete you can set:
<input type="text" autocomplete="off" />
You can use autocomplete for a form too.
Solution 3
Basically, there are two ways to clear the cache:
<form autocomplete="off"></form>
or
$('#Textfiledid').attr('autocomplete', 'off');
Solution 4
Another approach would be to reset the form using JavaScript right after the form in the HTML:
<form id="myForm">
<input type="text" value="" name="myTextInput" />
</form>
<script type="text/javascript">
document.getElementById("myForm").reset();
</script>
Solution 5
This worked for me in newer browsers:
autocomplete="new-password"
Comments
-
queen3 almost 4 years
Most browsers cache form input values. So when the user refreshes a page, the inputs have the same values.
Here's my problem. When a user clicks Save, the server validates POSTed data (e.g. checked products), and if not valid, sends it back to the browser. However, as stated above, even if the server clears selection for some values, they may still be selected because of the browser cache!
My data has invisible (until parent item selected) checkboxes, so the user may be even not aware that some previous value is still selected, until clicking Save again and gets an error message - even though the user thinks it's not. Which is irritating.
This can be resolved by doing Ctrl + F5, but it's not even a solution. Is there an automatic/programmatic way to tell browser not to cache form input data on some form/page?
-
queen3 about 14 yearsI talk about checkboxes so I can't set value to "". And, does autocomplete off means not to store form input values "when user presses F5", not only "for dropdown autocompletion list"?
-
queen3 about 14 yearsAccording to developer.mozilla.org/en/How_to_Turn_Off_Form_Autocompletion, autcompletion=off affects "Session history caching", at least in Gecko. I will test if it works for what I need.
-
DisgruntledGoat about 14 years@queen3: Yes, checkboxes are a problem since there is no way to explicitly say "not checked". If you're still having problems, you could try
checked="false"
, it may work in some browsers. Another alternative is to use Javascript/jQuery to explicitly untick all checkboxes on page load. -
sejnovic almost 12 years@queen3, you mean "autocomplete=off" not "autocompletion=off"
-
mindplay.dk almost 11 yearsIn Chrome, it appears
autocomplete="off"
has no effect when used on individual form-elements - even withvalue
attribute explicitly set blank, and while sending aCache-Control: Must-Revalidate
header, this had no effect. I had to apply theautocomplete="off"
attribute to the<form>
element itself to suppress this behavior in Chrome. -
hakan almost 10 yearsAll of the answers and suggestions didnt work for me. Using chrome and develeoping .net
-
Kingsley Simon almost 8 yearsi did autocomplete="off" on form but it didnt work for me
-
shareef almost 8 yearsi need more info @KingsleySimon like browser , and you may have some settings on your browser that prevent the correct behavior
-
david over 7 yearsit seems that browser's behavior has changed: developer.mozilla.org/en-US/docs/Web/Security/…
-
shareef over 7 yearsand be noted the html valid form . and for example its not aform inside another etc
-
thenninger about 7 years@piedpiper Try ModelState.Clear() in your controller action. If you are using return View(...or return PartialView(... then it will return the old values. This is by design for MVC.
-
6opko about 3 years...adding autocomplete="off" as an input field argument did the trick for me