给出一个对象:
var object = {
"key1" : Math.random()*10000000000000000,
"key2" : "value",
"key3" : "value",
}
当有人填写带有相应值的表单时,如何将其存储在浏览器cookie中?当用户返回页面填写表单时,值应填充cookie中的表单。
答案 0 :(得分:0)
扩展已经给出的答案(评论和自定义JS方法)......我想把它放在一个工作的例子中...所以这里......
首先,使用JSON可以轻松地将对象转换为JSON和从JSON转换而不必使用自己的方法..这是最常见的方式和现在众所周知的标准..所以大多数语言都有支持为JSON ..
扩展 subas chandran ...
提供的示例var object={name : username.value, email : email.value, gender : gender.value};
var stringObj=JSON.stringify(object);
如此处http://jsfiddle.net/LLujbb2h/使其易于使用,如果您想处理字符串/数组和对象,则不受限制。您只需将其交给主对象即可完成所有工作。 ..那么为什么要重新发明轮子呢?
使用这里显示的非JSON方法http://jsfiddle.net/1bf4dg8o/有很多问题,比如从cookie中读回来处理对象..它只是一个字符串...例如,如果你说: :在你的名字/电子邮件/性别..这会破坏自定义语法......我会不惜一切代价避免这种方法!
简单地说,测试我创建的第一个小提琴,你会发现它很容易处理......
还可以使用浏览器上的检查器查看cookie,因为这有助于调试..
编辑 - 展示如何将cookie读回JS对象 http://jsfiddle.net/LLujbb2h/2/
答案 1 :(得分:-1)
var saveButton=document.getElementById("save");
var username=document.getElementById("Name");
var email=document.getElementById("Email");
var gender=document.getElementById("Gender");
function setCookie(value, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = "Username"+ "=" + value + "; " + expires;
if(document.cookie)
return true;
}
function objToString (obj) {
var str = '';
for (var p in obj) {
if (obj.hasOwnProperty(p)) {
str += p + '::' + obj[p] + '\n';
}
}
return str;
}
saveButton.onclick=function () {
// body...
var object={name : username.value, email : email.value, gender : gender.value};
var stringObj=objToString(object);
alert(stringObj);
if(setCookie(stringObj,1))
alert("cookie set");
};