J'ai trouvé ce que je crois être un bogue avec Firefox et je me demande s'il s'agit réellement d'un bogue, ainsi que des solutions de contournement pour cela.
Si vous créez une page Web de base avec la source suivante:
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
</head>
<body>
<div>
<input id="txtTest" type="text" />
<input type="button" onclick="$('#txtTest').attr('disabled','disabled');" value="Set Disabled (jQuery)" />
<input type="button" onclick="document.getElementById('txtTest').disabled = true;" value="Set Disabled (js)" />
<input type="button" onclick="$('#txtTest').removeAttr('disabled');" value="Remove Disabled" />
</div>
</body>
</html>
Si vous disable
l' textbox
actualisez dynamiquement puis actualisez la page, le textbox
restera désactivé au lieu de revenir à son état d'origine non désactivé. J'ai essayé cela dans IE8 et Chrome et ceux-ci se comportent comme je m'y attendais, en réinitialisant le textbox
dos pour qu'il ne soit pas désactivé lorsque je rafraîchis.
Une autre information intéressante est qu'il fait toujours la même chose si l'entrée est a checkbox
au lieu de a textbox
.
input
éléments lorsque vous actualisez simplement?autocomplete="off"
. Ce billet de blog me semble familier, donc je l'ai certainement déjà rencontré. Vous devriez écrire une réponse à votre propre question (ou devrais-je?)Réponses:
Il s'agit d'une "fonctionnalité" de Firefox qui se souvient des valeurs d'entrée des formulaires lors des actualisations de la page. Pour corriger ce problème, il vous suffit de définir
autocomplete="off"
sur le formulaire contenant les entrées, ou tout simplement directement à l'entrée.Cela arrête le fonctionnement de la saisie semi-automatique et empêche le navigateur de se souvenir de l'état des champs de saisie.
Alternativement, vous pouvez simplement "actualiser dur" en cliquant sur CTRL + F5. Cela réinitialisera complètement la page actuelle.
la source
autocomplete="off"
ne pas fonctionner dans ce cas.Pour gérer le bouton de retour, procédez comme suit (à partir d' ici )
la source
//enable button here
c'est redondant ici; ma compréhension des documents référencés est que la simple présence d'un écouteur d'événement empêchera la page d'être stockée dans le BFcache.Comme mentionné précédemment, vous devez ajouter
autocomplete="off"
à vos boutons.Voici un
sh
+perl
extrait pour automatiser cela dans le cas de<button>
s dans vos fichiers / modèles HTML (sous certaines hypothèses):Les hypothèses sont:
Les
<button>
balises d' ouverture commencent et se terminent sur la même ligne. Si ce n'est pas le cas (c'est-à-dire qu'ils peuvent être répartis sur plusieurs lignes), le remplacement/g
par/gs
devrait aider (les
modificateur fait également.
correspondre les nouvelles lignes)HTML valide (par exemple, il n'y a pas de caractères amusants entre
<
et>
) et aucun plus grand que (>
) sans échappement à l'intérieur de la balise d'ouverture.la source
Il s'agit en effet d'un bogue ouvert dans Firefox. Il y a aussi une note dans MDN:
autocomplete
(faites défiler jusqu'à la deuxième case jaune):Si vous utilisez Bootstrap, vous pourriez être intéressé par le
la source