当用户通过表单进行时存储cookie

时间:2013-11-18 22:22:34

标签: javascript cookies

我正在努力找出解决这个问题的最佳方法。我有一个带有一堆输入字段的表单,例如。名字,姓氏,地址等。我的问题是,将存储为用户输入数据并在表单中进行处理的最佳方法是什么。

我的第一个想法是使用onchange事件并调用创建cookie函数,但我担心的是,如果用户要更改两次字段,即使它们以相同的名称传递,也会生成两个cookie?或者是否会覆盖同名的第一个?

谢谢

5 个答案:

答案 0 :(得分:1)

您真的需要为每个表单字段创建单独的Cookie吗?您可以使用一种方法来序列化整个表单,并将所有数据存储在cookie中。

使用jQuery,您可以使用.serialize()方法:

http://api.jquery.com/serialize/

您还可以使用jquery-cookie将数据存储在cookie中:

https://github.com/carhartl/jquery-cookie

答案 1 :(得分:0)

根据您正在寻找的用途,Cookie可能不是您想要的。让我们知道您想要做什么,我们将帮助您获得解决方案。在任何情况下:

您可以使用javascript:http://www.w3schools.com/js/js_cookies.asp

创建和销毁Cookie

要更新cookie,您将删除cookie并重新创建它。

但是我认为你可能不需要cookie。 您可以将所有数据存储在隐藏字段中,并在表单提交时发送。或者使用ajax将它们发送到服务器并让服务器将它们存储在会话中。

答案 2 :(得分:0)

Cookie作为键值对存储在用户的本地计算机上,并具有可选的有效期(Cookie之前的时间不再“有效”)。

根据您的键命名选择,只要它的值没有更改或已被明确清除,它就会一直存在。

您可以使用onchange事件执行此操作,只需使用表单字段ID作为键,输入的文本作为值。

尽管使用jQuery将整个表单存储为cookie可能更好。

答案 3 :(得分:0)

根据您的浏览器兼容性要求,您可能会考虑使用本地存储而不是设置和重置Cookie

https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage

或者,正如其他人所建议的那样,将整个表单序列化为一个cookie。

答案 4 :(得分:0)

通过一些实验,使用简单的document.cookie和name = value对创建一个cookie,然后使用相同的名称和不同的值更新cookie不会创建两个cookie,它确实只是更新第一个。所以我的onchange想法似乎工作得很好。通过我的经验,我还发现本地document.cookies似乎不适用于谷歌浏览器,但在mozilla Firefox中运行良好。