我画了这张照片来展示我的最终目标。
简短说明:
我不是来为你们提供完整的工作解决方案,别担心。我研究了一个星期&我无法绕过它。没有约束元素和它会很容易。 “分组”。
问题:
This question显示如何设置&从localStorage获得价值。
This question显示了如何从localStorage中删除值。
This question显示了如何检查localStorage值是否存在。
答案 0 :(得分:1)
我们已经在聊天过程中找到了the first version我的回答,基本上有一堆HTML表单元素that all have unique IDs。
在这个前提下,抓住它们并将它们作为键/值对存储到对象中相对容易。然后,此对象表示该表单在该时间点所处的状态。
因此我们需要两个函数 - 一个将HTML表单中的值转换为一个对象,另一个执行相反的操作(对于它正在处理的表单元素的类型有一点点智能)。这些功能可能如下所示:
function getFormState() {
var formState = {};
$(".form-control, :input:hidden").each(function () {
formState[this.id] = $(this).val();
});
return formState;
}
function setFormState(formState) {
$.each(formState, function (key, value) {
var $target = $("#" + key);
if ( $target.is(".ui-datepicker") ) {
// set datepicker value...
} else if ( $target.is(":text") ) {
$target.val(value);
} // etc for other field types
});
}
$(function () {
var savedState = {testinput: "Hello!"};
setFormState(savedState);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="testinput">
保存formState
对象会将其序列化为JSON并将其放入localStorage,这也不会过于复杂。