[英]How do I make a website save what we type into an input box using localStorage?
所以這里的概念:
我正在制作一個簡單的網站,其中有一個輸入框,網站會將我們輸入的內容保存到 localStorage,並將其顯示到網站正文中。 我們可以隨時更改輸入框中的文字,網站會自動更新。
預期結果
在輸入框中鍵入將更新站點
實際結果
什么都沒發生
這是代碼:
<h1>localStorage Test</h1>
<form>
<label for="name">Your Name:</label><br>
<input type="text" id="name" name="name"><br>
<button onclick="saveName()" type="button">Save Name</button>
</form>
<br>
<p id="output"> </p>
<script>
document.getElementById("output").value = localStorage.getItem("name");
function saveName() {
var name = document.getElementById("name");
localStorage.setItem("name", name.value);
}
</script>
提前致謝。
我認為你有兩個問題。
第一個是設置localstorage后不更新元素。 這可以通過將代碼放入函數中並在更新值后調用該函數來完成。
其次,要在<p>
標記內顯示文本,您需要使用 innerHTML 或最好使用innerText
。
請參閱下面的示例代碼
function getName() {
document.getElementById("output").innerText = localStorage.getItem("name");
}
getName();
function saveName() {
var name = document.getElementById("name");
localStorage.setItem("name", name.value);
getName();
}
您沒有更新屏幕上的給定名稱,您只是在 localStorage 中更新它。 你需要寫如下:
<h1>localStorage Test</h1>
<form>
<label for="name">Your Name:</label><br>
<input type="text" id="name" name="name"><br>
<button onclick="saveName()" type="button">Save Name</button>
</form>
<br>
<p id="output"> </p>
<script>
function setName(name){
document.getElementById("output").textContent = name;
}
let currentNameInStoarge = localStorage.getItem("name");
if(currentNameInStoarge !== null) setName(currentNameInStoarge);
function saveName() {
var name = document.getElementById("name");
localStorage.setItem("name", name.value);
setName(name.value);
}
</script>
我還在開頭添加了一個檢查,以檢查 localStorage 是否完全具有“名稱”屬性。
正如@David 所說, <p>
元素沒有“值”屬性,所以我將其更改為 textContent。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.