我有一个简单的html表单,包含大约20-30个字段,其中有两个按钮,一个是“保存”,另一个是“加载”。
我正在尝试一种方法,可以运行两个函数,一个函数将表单上的所有字段另存为cookie,另一个函数将所有字段从cookie加载回表单。
我设法将单个参数保存为表单中的cookie,但是我无法在数组中执行此操作。同样,我似乎无法拉出我尝试过的getcookie
的每个保存的参数,但这不起作用,我必须使用document.cookie
,因为setcookie
也不起作用。
document.cookie="firstname="+document.getElementById('firstname').value+"; expires=Thu, 18 Dec 2019 12:00:00 UTC";
document.cookie="secondname="+document.getElementById('secondname').value+"; expires=Thu, 18 Dec 2019 12:00:00 UTC";
答案 0 :(得分:0)
您使用什么方法将Cookie值设置为数组? document.cookie方法应仅使用字符串。这是设置和获取Cookie数组的简单方法:
function setCookieArray(cname, arrayValues, exdays) {
var expires = "";
if (exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
expires = ";expires="+ d.toUTCString();
}
var json_str = JSON.stringify(arrayValues);
document.cookie = cname + "=" + json_str + expires + ";path=/";
}
function getCookieArray(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return JSON.parse(c.substring(name.length, c.length));
}
}
return "";
}
您可以这样设置cookie:
setCookieArray("myTest1", ["a","b","c","d"], 3); //expires in 3 days
并获得如下所示的cookie数组:
getCookieArray("myTest1");