楊魅力
2023-07-06 11:04:26
我有一個表單,它有一個默認值名稱“Alex”。我的目標是通過會話存儲保存對表單所做的任何更改??雌饋砦业拇鎯σ驯4嬖跒g覽器上,但我的值沒有以表單形式更新。頁面刷新時,它會繼續返回默認值“Alex”。我不確定如果我的值存儲在瀏覽器上,為什么會發生這種情況。我的事件處理程序是正確的方法嗎?JS 小提琴:https://jsfiddle.net/2yL7k8w5/20/document.addEventListener("change", (evt) => { const save_name = document.getElementById("name").value; sessionStorage.getItem("name"); sessionStorage.setItem("name", save_name); });<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script><div class="well"> <form action="/person.php" method="post"> <label for="firstName">First Name</label> <input id = "name"class="form-control" type="text" name="firstname" value="Alex"> </form></div>
2 回答

森欄
TA貢獻1810條經驗 獲得超5個贊
我認為這種方法沒問題,但問題是你已經在 HTML 中設置了輸入框的值,但你并沒有真正使用 sessionStorage 中存儲的值來更新該值。
因此,使用以下代碼來查看更改:
let sname = sessionStorage.getItem("name");
let name = document.getElementById("name");
if(sname) {
name.value = sname;
}
document.addEventListener("change", (evt) => {
const save_name = name.value;
console.log(sessionStorage.getItem("name"));
sessionStorage.setItem("name", save_name);
});

慕碼人2483693
TA貢獻1860條經驗 獲得超9個贊
您正在保存在 sessionStorage 中,但如果會話存儲中有任何值,則不會更新頁面加載時的值。添加以下代碼。
$(document).ready(function() {
const name = sessionStorage.getItem("name");
if(name){
document.getElementById("name").value = name
}
})
添加回答
舉報
0/150
提交
取消