LocalStorage 只存储最后输入的数据

LocalStorage only storing last entered data

我正在使用 LocalStorage 将用户名和密码存储在我使用 PhoneGap 为 iOS 构建的应用程序中。当我 运行 我 iPad 上的应用程序并输入用户名和密码时,关闭应用程序,然后再次打开以输入另一个用户名和密码。当我将我的 iPad 与我的 Macbook 连接并打开 Safari Web 检查器以检查我在 iPad 上的应用程序 运行ning 时,当我在检查器中转到 "Storage -> localStorage" 时,只有显示上次输入的用户名和密码,但找不到我输入的第一组用户名和密码。有人知道为什么会这样吗?

js:

<script type="text/javascript">
document.addEventListener("deviceready",onDeviceReady,false);

function onDeviceReady() {
document.getElementById("btnSave").addEventListener("click",saveData,false);
document.getElementById("btnGet").addEventListener("click",getData,false);
}

    function saveData(){
        var username = document.getElementById("username").value;
        var password = document.getElementById("password").value;
        window.localStorage.setItem("uname", username);
        window.localStorage.setItem("pass", password);
        alert("Your data is stored");
    }
    function getData(){
        var output="Your username is " + window.localStorage.getItem("uname") + "and your password is " + window.localStorage.getItem("pass");
        document.getElementById("result").innerHTML = output;
    }
</script>

html:

    User Name: <input type ="text" id="username" /><br />
    Password: <input type="text" id="password" /><br />
    <button id="btnSave"> Save Data </button>
    <button id="btnGet"> Get Data </button>
    <div id="result"></div>

我试过在网络检查器周围四处寻找,但仍然找不到我的第一组存储数据的去向。代码有问题吗?

LocalStorage 只是存储键值对。要存储多个值,请使用解决方法:

str=localStorage.getItem("users");
if(str==""){
str="[]";
}
users=JSON.parse(str);
//users contains an array now
users.push("John");
//add a user
localStorage.setItem("users",JSON.stringify(users));
//create json and store it again

试试这个

var localObject = [];
localObject = localStorage.getItem("userDetails");
var testObject = {userName : "firstUser", password : "password1"};
var testArray = localObject.push(testObject);
localStorage.setItem("userDetails", JSON.stringify(testArray));
//to fetch the data
localStorage.getItem("userDetails");
console.log (JSON.parse(localStorage.getItem("userDetails")));

//for second time 
var localObject = localStorage.getItem("userDetails");
var testObject = {userName : "secondUser", password : "password2"};
testArray = localObject.push(testObject);
localStorage.setItem("userDetails", JSON.stringify(testArray));
console.log (JSON.parse(localStorage.getItem("userDetails")));

请试试这个

var localObject = [];
var testObject = {userName : "firstUser", password : "password1"};
localObject.push(testObject);
localStorage.setItem("userDetails", JSON.stringify(localObject));
console.log(JSON.parse(localStorage.getItem("userDetails")));

//for second time 
var testObject = {userName : "secondUser", password : "password2"};
localObject.push(testObject);
localStorage.setItem("userDetails", JSON.stringify(localObject));
console.log(JSON.parse(localStorage.getItem("userDetails")));

每次尝试存储用户详细信息时,获取本地存储,将用户详细信息作为对象推送到数组中。