學習cookie和表單交互留下的一點筆記數組
什麼是cookie?
cookie 是存儲於客戶端的變量。當設備請求頁面時,就會發送cookie。
首先須要稍微瞭解一下cookie的結構,簡單地說:cookie是以鍵值對的形式保存的,即key=value的格式。各個cookie之間通常是以「;」分隔。
JS設置cookie:
document.cookie= key + '=' + value + ';expires=' + Date;
其中Date爲cookie的過時時間。
實際案例: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呢?,以下是一個表單:ui
<form id="form1" action="http://www.baidu.com/">
用戶名:<input type="text" name="user" /><br>
密碼:<input type="password" name="password" /><br>
<input type="submit" value="登錄" />
</form>
將填寫好的表單保存爲數組賦給cookie:spa
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 ; } }
關於表單交互詳細能夠看一下推酷的這篇文章:code