wake-up-neo.com

Erstellen Sie eine Seite, um den Browser anzuweisen, Eingabewerte nicht zwischenzuspeichern / beizubehalten

Die meisten Browser-Cache-Formulareingabewerte. Wenn der Benutzer die Seite aktualisiert, haben die Eingaben dieselben Werte.

Hier ist mein Problem. Wenn der Benutzer auf Speichern klickt, überprüft der Server die POST-Daten (z. B. überprüfte Produkte) und sendet sie, falls sie nicht gültig sind, an den Browser zurück. Wie oben erwähnt, können einige Werte aufgrund des Browser-Caches ausgewählt werden, auch wenn der Server die Auswahl für einige Werte aufhebt. Meine Daten haben unsichtbare Kontrollkästchen (bis das übergeordnete Element ausgewählt ist), sodass der Benutzer möglicherweise nicht weiß, dass ein vorheriger Wert noch ausgewählt ist, bis er erneut auf Speichern klickt und eine Fehlermeldung erhält, obwohl der Benutzer dies für falsch hält. Welches ist irritierend.

Dies kann durch Drücken von Strg-F5 behoben werden, ist aber noch nicht einmal eine Lösung. Gibt es eine automatische/programmgesteuerte Methode, um den Browser anzuweisen, keine Formulareingabedaten auf einem Formular/einer Seite zwischenzuspeichern?

107
queen3

Setzen Sie die Werte explizit als leer? Beispielsweise:

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

Das sollte verhindern, dass Browser Daten dort ablegen, wo sie nicht abgelegt werden sollten. Alternativ können Sie das Attribut autocomplete zum Formular-Tag hinzufügen:

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

from Stapelüberlaufreferenz

es hat nicht mit value = "" funktioniert, wenn der Browser den Wert bereits gespeichert hat und Sie ihn hinzufügen sollten

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

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

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

40
shareef

ein anderer Ansatz wäre, das Formular mithilfe von 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>
10
pmko

spätes Hinzufügen, aber dies funktionierte für mich in neueren Browsern:

autocomplete = "neues Passwort"

6
erikrunia

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

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

oder

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

`

5
Anand Dwivedi