137 Stimmen

Seite erstellen, um dem Browser mitzuteilen, dass er Eingabewerte nicht zwischenspeichern soll

Die meisten Browser zwischenspeichern Formulareingabewerte. Wenn der Benutzer also eine Seite aktualisiert, haben die Eingaben die gleichen Werte.

Hier ist mein Problem. Wenn ein Benutzer klickt Speichern Sie überprüft der Server die per POST übermittelten Daten (z. B. geprüfte Produkte) und sendet sie, falls sie nicht gültig sind, an den Browser zurück. Wie bereits erwähnt, kann es jedoch vorkommen, dass einige Werte aufgrund des Browser-Caches immer noch ausgewählt sind, selbst wenn der Server die Auswahl löscht!

Meine Daten haben unsichtbare (bis zur Auswahl des übergeordneten Elements) Kontrollkästchen, so dass der Benutzer möglicherweise nicht einmal weiß, dass ein früherer Wert noch ausgewählt ist, bis er auf Speichern Sie und erhält eine Fehlermeldung - auch wenn der Benutzer denkt, dass es nicht so ist. Das ist ärgerlich.

Dies kann wie folgt behoben werden Ctrl + F5 aber das ist nicht einmal eine Lösung. Gibt es eine automatische/programmatische Möglichkeit, dem Browser mitzuteilen, dass er die Eingabedaten eines Formulars/einer Seite nicht zwischenspeichern soll?

1 Stimmen

Ist <form autocomplete="off"... eine Option für Sie? Tritt dieses Problem in allen Browsern auf oder nur in einem bestimmten?

0 Stimmen

Gibt es eine Möglichkeit, diese Frage in Bezug auf die Dropdown-Liste zu beantworten? <select> Listen. Ich habe eine Liste und habe eine selected aber das Aktualisieren der Seite behält die zuvor ausgewählten Optionen bei.

0 Stimmen

Ich möchte das Gegenteil erreichen - bewahren Sie jede Seite die Eingabewerte auf zurück-Taste (klicken Sie zweimal zurück-get Eingänge entsprechend). Es gibt verschiedene Beispiele um mit viel JS-Code, (die nicht wirklich funktionieren IMHO) aber - gibt es einen einfacheren Weg? Ich habe autocomplete="on" sowohl für das Formular als auch für die Eingabefelder ausprobiert - es funktioniert nicht. Browser ist Chrome.

218voto

DisgruntledGoat Punkte 66021

Setzen Sie die Werte explizit als leer? Zum Beispiel:

<input type="text" name="textfield" value="">

Das sollte verhindern, dass Browser Daten dort eingeben, wo sie nicht hingehören. Alternativ können Sie auch die autocomplete Attribut an den Formular-Tag an:

<form autocomplete="off" ...></form>

1 Stimmen

Ich spreche von Kontrollkästchen, also kann ich den Wert nicht auf "" setzen. Und bedeutet "Autovervollständigen aus", dass die Eingabewerte des Formulars nicht gespeichert werden, "wenn der Benutzer F5 drückt", nicht nur "für die Dropdown-Liste zur automatischen Vervollständigung"?

4 Stimmen

Nach Angaben von developer.mozilla.org/de/How_to_Turn_Off_Form_Autocompletion autcompletion=off wirkt sich auf "Session history caching" aus, zumindest in Gecko. Ich werde testen, ob es für das, was ich brauche, funktioniert.

1 Stimmen

@queen3: Ja, Kontrollkästchen sind ein Problem, da es keine Möglichkeit gibt, explizit zu sagen "nicht markiert". Wenn Sie immer noch Probleme haben, könnten Sie versuchen checked="false" kann es in einigen Browsern funktionieren. Eine weitere Alternative besteht darin, Javascript/jQuery zu verwenden, um alle Kontrollkästchen beim Laden der Seite explizit zu deaktivieren.

54voto

shareef Punkte 8526

Desde eine Stack Overflow-Referenz

Es funktionierte nicht mit value="", wenn der Browser den Wert bereits speichert, also sollten Sie hinzufügen.

Für ein Eingabe-Tag gibt es das Attribut autocomplete, das Sie einstellen können:

<input type="text" autocomplete="off" />

Sie können die automatische Vervollständigung auch für ein Formular verwenden.

9 Stimmen

In Chrome erscheint es autocomplete="off" hat keine Auswirkung, wenn sie auf einzelne Formularelemente angewendet wird - selbst mit value Attribut explizit leer gesetzt, und beim Senden einer Cache-Control: Must-Revalidate Kopfzeile, hatte dies keine Wirkung. Ich musste die autocomplete="off" Attribut zum <form> Element selbst, um dieses Verhalten in Chrome zu unterdrücken.

1 Stimmen

Ich habe autocomplete="off" im Formular verwendet, aber es hat nicht funktioniert.

0 Stimmen

Ich brauche mehr Informationen @KingsleySimon wie Browser , und Sie können einige Einstellungen auf Ihrem Browser, die das richtige Verhalten zu verhindern haben

13voto

Anand Dwivedi Punkte 1455

Grundsätzlich gibt es zwei Möglichkeiten, den Cache zu löschen:

<form autocomplete="off"></form>

oder

$('#Textfiledid').attr('autocomplete', 'off');

10voto

pmko Punkte 4991

Eine andere Möglichkeit wäre, das Formular mit JavaScript direkt nach dem Formular im HTML-Code zurückzusetzen:

<form id="myForm">
  <input type="text" value="" name="myTextInput" />
</form>

<script type="text/javascript">
  document.getElementById("myForm").reset();
</script>

8voto

erikrunia Punkte 2339

Bei neueren Browsern funktionierte dies bei mir:

autocomplete="new-password"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X