我是一名JavaScript新手,非常感谢您的建议。
我在网上找到了一个代码段,允许将表单输入值保存在单独的Cookie中:
function storeValues(form)
{
setCookie("field1", form.field1.value);
setCookie("field2", form.field2.value);
setCookie("field3", form.field3.value);
setCookie("field4", form.field4.value);
return true;
}
如何修改它以将来自多个输入的值存储在单个cookie中?
答案 0 :(得分:4)
您可以将值存储为json:
function storeValues(form)
{
setCookie("form", JSON.stringify({field1:form.field1.value,
field2:form.field2.value,
field3:form.field3.value,
field4:form.field4.value});
return true;
}
然后访问它:
JSON.parse(getCookie("form"));
答案 1 :(得分:2)
因为cookie只是Key - >值(字符串),您必须将多个输入放在一个字符串中,然后存储它。
如果您不确定要保存的格式,可以将值写入JSON,然后保存。有点像...
{
"field1": form.field1.value,
"field2": form.field2.value,
"field3": form.field3.value,
"field4": form.field4.value,
}
或者如果您已经将数据排列在易于访问的Javascript结构中,只需将其传递到JSON.stringify()
,并将返回的字符串保存到cookie中。
或者,如果您知道格式,并且知道某些字符不会在值中使用(但您可能不会因为使用表单输入而使用),则可以使用某种字符分隔的字符串。像...这样的东西(在例子中用作分隔符的逗号)
string = form.field1.value + "," + form.field2.value + "," + form.field3.value + "," + form.field4.value + ",";
获得字符串后,将其保存到您知道的cookie中。
答案 2 :(得分:1)
您可以连接值。请务必使用允许您稍后检索值的分隔格式:
setCookie( 'fieldname', form.field1.value + ',' + form.field2.value + ','... );