La plupart des valeurs d'entrée du formulaire de cache du navigateur. Ainsi, lorsque l'utilisateur actualise la page, les entrées ont les mêmes valeurs.
Voici mon problème. Lorsque l'utilisateur clique sur Enregistrer, le serveur valide les données POST (produits vérifiés, par exemple) et, si elles ne sont pas valides, les renvoie au navigateur. Cependant, comme indiqué ci-dessus, même si le serveur efface la sélection de certaines valeurs, elles peuvent toujours l'être à cause du cache du navigateur! Mes données ont des cases invisibles (jusqu'à ce que l'élément parent soit sélectionné), de sorte que l'utilisateur peut même ne pas être conscient du fait qu'une valeur précédente est toujours sélectionnée, jusqu'à ce que vous cliquiez à nouveau sur Enregistrer et que le message d'erreur apparaisse - même si l'utilisateur pense que ce n'est pas le cas. Ce qui est irritant.
Cela peut être résolu en utilisant Ctrl-F5, mais ce n'est même pas une solution. Existe-t-il un moyen automatique/programmé de dire au navigateur de ne pas mettre en cache les données d’entrée de formulaire sur un formulaire/une page?
Définissez-vous explicitement les valeurs comme vides? Par exemple:
<input type="text" name="textfield" value="">
Cela devrait empêcher les navigateurs de placer des données là où elles ne devraient pas. Vous pouvez également ajouter l'attribut autocomplete
à la balise de formulaire:
<form autocomplete="off" ...></form>
cela ne fonctionnait pas avec value = "" si le navigateur enregistrait déjà la valeur, vous devriez donc ajouter
Pour une balise d'entrée, il existe l'attribut autocomplete que vous pouvez définir:
<input type="text" autocomplete="off" />
Vous pouvez également utiliser la saisie semi-automatique pour un formulaire.
une autre approche consisterait à réinitialiser le formulaire en utilisant JavaScript juste après le formulaire dans le code HTML.
<form id="myForm">
<input type="text" value="" name="myTextInput" />
</form>
<script type="text/javascript">
document.getElementById("myForm").reset();
</script>
ajout tardif, mais cela a fonctionné pour moi dans les nouveaux navigateurs:
autocomplete = "nouveau-mot de passe"
Il existe essentiellement deux méthodes pour effacer le cache:
<form autocomplete="off"></form>
ou
$('#Textfiledid').attr('autocomplete','off');
`