因此,我正在开发一个庞大的Web应用程序,主要由有兴趣查看统计信息的管理员使用。因此,有20-25个表格带有大量过滤器。客户希望为每个会话存储他们的cookie,因为他们使用的一些过滤器非常错综复杂,并且很难重新创建。
在您开始输入之前:我已经知道如何应用 sessionStorage ,因为我最近不得不使用它。但是,我这样做的方式并不是很优雅。这是一个例子:
var fnrCookie = '';
sessionStorage.setItem("fnrCookie", fnr);
var fnrInUse = sessionStorage.getItem("fnrCookie");
这表示代码中的单个输入字段。如果我要对应用程序的其余部分采用相同的方法,那么它将成为一项非常庞大而平凡的任务,因为可能有250-300个输入字段组合在一起。
那么,有没有办法让我告诉我的jsp页面存储所有输入字段的会话cookie,而不必为所有编写变量?
答案 0 :(得分:0)
我最近必须做类似的事情,所以我将所有表单元素存储到一个对象中,json将结果存储到localStorage
//--- process the form elements
//--- get the second form details (more than one form on the page)
var f = document.querySelectorAll('form')[1];
//--- create a new form data object
fd = new FormData( f );
//--- iterate over the data
for( pair of fd.entries() ) {
//--- handle multiple values on same input name
x = fd.getAll( pair[0]);
//--- store values in with input name and it's value
res[pair[0]] = x.join('~');
}
//--- json the whole thing
x = JSON.stringify(res);
//--- store it
localStorage.setItem("formInfo", x );