【发布时间】:2014-07-16 05:31:06
【问题描述】:
我注意到,在 Firefox 中,输入元素在页面重置时保持其值,但在 Safari 中则不然。有没有办法维护用户在 JavaScript(非 PHP)中输入的值。
我已经尝试过相当广泛的谷歌搜索,但每个结果似乎都认为这种行为是不可取的。
编辑:不知道我做错了什么,这是我尝试过的:
<input id="myInput" type="text">
<script>
var myInput = document.getElementById("myInput");
if (sessionStorage.getItem("autosave"))
myInput.value = sessionStorage.getItem("autosave");
myInput.addEventListener("change", function() {
sessionStorage.setItem("autosave", myInput.value);
});
</script>
编辑(再次):成功了,谢谢:
<input id="myInput" type="text">
<script>
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);
});
</script>
【问题讨论】:
-
您可以在输入更改时将值保存到本地存储,并在提交时清除。然后,在加载页面时,检查 localstorage 值并填充表单。
-
这是浏览器功能,即使在 Firefox 中,如果您通过单击 CTRL+F5 进行“硬刷新”,输入元素也会被重置。
标签: javascript html input