如何使用localStorage保留我的输入

时间:2014-06-15 17:46:56

标签: javascript jquery html css twitter-bootstrap-3

我想要做的是当我在输入中typedselected时,如果我刷新页面,它仍会保留值。

当前输出:http://jsfiddle.net/5kcsn/71/

脚本:

document.querySelector('#fname, #lname, #email, #reemail, #password, #gender, #bmonth, #bday, #byear').innerHTML = "";

var save = document.createElement('input,select');
document.querySelector('#fname, #lname, #email, #reemail, #password, #gender, #bmonth, #bday, #byear').appendChild(save);

if (!save.value) {
save.value = window.localStorage.getItem('value');
}

save.addEventListener('keyup', function () {
window.localStorage.setItem('value', save.value);
}, false);

1 个答案:

答案 0 :(得分:1)

document.ready之上添加以下事件处理程序,当任何字段值更改并在localStorage中存储值时将调用该事件处理程序。

Complete Working Demo

(填写数据并单击演示页面中的运行将重新加载,但数据将保持不变)

$('#fname, #lname, #email, #reemail, #password, #gender, #bmonth, #bday, #byear').on("change", function () {
    localStorage.setItem($(this).attr("id"), $(this).val())
});

以下代码将从页面加载时的localStorage恢复值

$('#fname, #lname, #email, #reemail, #password, #gender, #bmonth, #bday, #byear').each(function (ind, val) {
    if ($(val).attr("id") != "gender") {
        $(val).val(localStorage.getItem($(val).attr("id")))
    }
    else {
        if (localStorage.getItem($(val).attr("id")) == "male")
            $("#gender[value=male]").prop("checked", true);
        else
            $("#gender[value=female]").prop("checked", true);
    }
});