首页 > 代码库 > JS设置读取删除cookie及表单交互

JS设置读取删除cookie及表单交互

学习cookie和表单交互留下的一点笔记

什么是cookie?
cookie 是存储于客户端的变量。当设备请求页面时,就会发送cookie。
首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间一般是以“;”分隔。
JS设置cookie:
document.cookie= key + ‘=‘ + value + ‘;expires=‘ + Date;
其中Date为cookie的过期时间。
实际案例:

//setCookie是一个设置Cookie的函数
//c_name参数设置key的值,value设置value的值,expiredays设置多少天后过期
function setCookie(c_name,value,expiredays){
    var exdate = new Date()
    exdate.setDate(exdate.getDate()+expiredays)
    //判断c_name,value为空时,expires=也为空
    document.cookie = c_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}

读取cookie:

function getCookie(name){
    var arr=document.cookie.split(‘; ‘);
    for(var i=0;i<arr.length;i++){
        var arr2=arr[i].split(‘=‘);
        if(arr2[0]==name){
            return arr2[1];
        }
    }
    return ‘‘;
}

删除cookie就直接在setCookie的基础上,expiredays-1

function removeCookie(name){
    setCookie(name, 1, -1);
}

那么在表单交互中如何在表单中保存cookie呢?,如下是一个表单:

<form id="form1" action="http://www.baidu.com/">
    用户名:<input type="text" name="user" /><br>
    密码:<input type="password" name="password" /><br>
    <input type="submit" value="http://www.mamicode.com/登陆" />
</form> 

将填写好的表单保存为数组赋给cookie:

function onSubmit(){
        var finalRes = $(#form1 :input).serializeArray().reduce(function(result, item){
             result[item.name] = item.value;
            return result;
        }, {})

        // 保存cookie
        var oDate = new Date();
        //设置过期时间为14天后
        oDate.setDate(oDate.getDate()+14);
        for (x in finalRes) {
            document.cookie = x+‘=‘+ finalRes[x]+‘;expires=‘+oDate ;
        }
}


关于表单交互详细可以看一下推酷的这篇文章:

由form表单来说说前后台数据之间的交互

JS设置读取删除cookie及表单交互