Impedire il valore di input dalla reimpostazione all’aggiornamento

Ho notato che in Firefox un elemento di input mantiene il suo valore quando la pagina viene ripristinata ma non in Safari. C’è un modo per mantenere i valori che un utente avrebbe digitato in JavaScript (senza PHP).

Ho provato a usare Google abbastanza spesso, ma ogni risultato sembra trovare questo comportamento indesiderabile.

Modifica: non sono sicuro di cosa sto facendo male, questo è quello che ho provato:

  var myInput = document.getElementById("myInput"); if (sessionStorage.getItem("autosave")) myInput.value = sessionStorage.getItem("autosave"); myInput.addEventListener("change", function() { sessionStorage.setItem("autosave", myInput.value); });  

Modifica (di nuovo): Funziona, grazie:

   var myInput = document.getElementById("myInput"); window.onload = function() { if (sessionStorage.getItem("autosave")) myInput.value = sessionStorage.getItem("autosave"); } myInput.addEventListener("keyup", function() { sessionStorage.setItem("autosave", myInput.value); });  

  

Nel tuo JS supponendo che stai usando jQuery

 $(document).on('ready',function(){ if(sessionStorage.getItem('last_entry')){ $("#persistent_text_field").val(sessionStorage.getItem('last_entry')); } $("#persistent_text_field").on("keypress",function(){ sessionStorage.setItem('last_entry',$(this).val()); }); }); 

EDIT: Non soluzione jQuery? Semplice 🙂

  

Nel tuo file JavaScript chiama customReset(); nel tuo documento carica la funzione del gestore di eventi.

 function customReset(){ if(sessionStorage.getItem('last_entry')){ var element = document.getElementById("presistent_text_field"); element.value = sessionStorage.getItem('last_entry'); } } function setStorage(element){ sessionStorage.setItem('last_entry',element.value); } 

Penso che sessionStorage sarebbe l’ideale per questo dato che localStorage e cookie permarrebbero i valori attraverso le sessioni che probabilmente non sono ciò che vorremmo.

È un comportamento del browser, ma puoi provare a sovrascriverlo usando i cookie per ricordare le voci, se non vuoi usare PHP.

 document.cookie = "field=value"; 

È necessario memorizzare il valore nel cookie o nella memoria locale.

Ricorda il valore della casella di testo utilizzando i cookie jQuery