1

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

4

3 回答 3

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"));
于 2013-06-25T16:57:22.957 回答
2

由于 cookie 只是 Key --> Value (string),因此您必须将多个输入放入一个字符串中,然后将其存储。

如果您不确定要保存的格式,可以将值写入 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 中。

于 2013-06-25T17:02:42.180 回答
1

您可以连接这些值。请务必使用允许您稍后检索值的分隔格式:

setCookie( 'fieldname', form.field1.value + ',' + form.field2.value + ','... );
于 2013-06-25T16:57:16.503 回答