将多个表单值存储在一个cookie中

时间:2013-06-25 16:52:53

标签: javascript

我是一名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中?

3 个答案:

答案 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 + ','... );