Ich habe herausgefunden, was meiner Meinung nach ein Fehler in Firefox ist, und ich frage mich, ob dies tatsächlich ein Fehler ist, sowie mögliche Problemumgehungen dafür.
Wenn Sie eine einfache Webseite mit der folgenden Quelle erstellen:
<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>
Wenn Sie disable
die Seite textbox
dynamisch und dann aktualisieren, textbox
bleibt die Seite deaktiviert, anstatt auf den ursprünglichen Status "Nicht deaktiviert" zurückzusetzen. Ich habe dies in IE8 und Chrome versucht und diese verhalten sich wie erwartet und setzen die textbox
Rückseite beim Aktualisieren auf nicht deaktiviert zurück.
Eine weitere interessante Information ist, dass es immer noch dasselbe tut, wenn die Eingabe a checkbox
anstelle von a ist textbox
.
input
Elementen beim einfachen Aktualisieren gespeichert wird?autocomplete="off"
. Dieser Blog-Beitrag kommt mir bekannt vor, daher bin ich auf jeden Fall schon einmal darauf gestoßen. Sie sollten eine Antwort auf Ihre eigene Frage schreiben (oder sollte ich?)Antworten:
Dies ist eine "Funktion" von Firefox, die Formulareingabewerte über Seitenaktualisierungen hinweg speichert. Um dieses Verhalten zu beheben, legen Sie einfach
autocomplete="off"
das Formular fest, das die Eingaben enthält, oder direkt die Eingabe.Dies verhindert, dass die automatische Vervollständigung funktioniert, und verhindert, dass sich der Browser den Status der Eingabefelder merkt.
Alternativ können Sie einfach "hart aktualisieren", indem Sie auf STRG + F5 klicken. Dadurch wird die aktuelle Seite vollständig zurückgesetzt.
quelle
autocomplete="off"
in diesem Fall nicht zu funktionieren.Um mit dem Zurück-Button umzugehen, tun Sie dies (von hier aus )
quelle
//enable button here
ist hier überflüssig; Mein Verständnis von verwiesenen Dokumenten ist, dass einfach die Anwesenheit eines Ereignis-Listeners verhindert, dass die Seite im BFcache gespeichert wird.Wie bereits erwähnt, müssen Sie
autocomplete="off"
Ihre Schaltflächen erweitern.Hier ist ein
sh
+perl
Snippet, um dies im Fall von<button>
s in Ihren HTML-Dateien / Vorlagen zu automatisieren (unter bestimmten Voraussetzungen):Die Annahmen sind:
Das Öffnen von
<button>
Tags beginnt und endet in derselben Zeile. Wenn dies nicht der Fall ist (dh sie können über mehrere Zeilen aufgeteilt sein), sollte das Ersetzen/g
durch/gs
helfen (ders
Modifikator bewirkt.
, dass auch Zeilenumbrüche übereinstimmen).Gültiges HTML (z. B. gibt es keine lustigen Zeichen zwischen
<
und>
) und kein uneingeschränktes Zeichen größer als (>
) im Eröffnungs-Tag.quelle
Dies ist in der Tat ein offener Fehler in Firefox. Es gibt auch einen Hinweis in MDN:
autocomplete
(scrollen Sie nach unten zum zweiten gelben Feld):Wenn Sie Bootstrap verwenden, könnte Sie das interessieren
quelle