2012-03-02 56 views
0

當用戶輸入值到文本框中時,Cookie被設置。爲什麼頁面刷新後cookie丟失

但是,頁面刷新後Cookie丟失。

下面是我的代碼,任何人都可以幫助我嗎?非常感謝!

<script type="text/javascript"> 
    function getCookie(c_name) 
    { 
    var i,x,y,ARRcookies=document.cookie.split(";"); 
    for (i=0;i<ARRcookies.length;i++) 
     { 
     x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
     y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
     x=x.replace(/^\s+|\s+$/g,""); 
     if (x==c_name) 
     { 
     return unescape(y); 
     } 
     } 
    } 

    function setCookie(c_name,value,exdays) 
    { 
    var exdate=new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
    document.cookie=c_name + "=" + c_value; 
    } 

    function checkCookie() 
    { 
    var emailVal=getCookie("email"); 
    if (emailVal!=null && emailVal!="") 
     { 
     document.getElementById('emailBox').value =emailVal; 
     } 
    else 
     { 
     var eVal = document.getElementById('emailBox').value; 

     setCookie("email",eVal,365); 

     } 
    } 
    </script> 

    <body> 
    <form> 

    <input type="text" id="emailBox" name="email" onchange="checkCookie()"/> 

    </form> 
    </body> 

回答

1

對我的作品在這裏很好 - >http://jsfiddle.net/RAZZg/1/

,我認爲可能是錯的唯一的事情就是你的JavaScript代碼放置...試着將它要麼<body>標籤內或添加<head>標籤:

<head> 
// your code here 
</head> 
<body onload="checkCookie()"> 
</body> 

更新:加入onload屬性body標籤,以檢查在頁面加載cookie的

+0

刷新後文本框中沒有值 – Acubi 2012-03-02 11:39:30

+0

僅當您更改值時纔會更改該值 - 即「checkCookie」函數被稱爲「onchange」...如果要在加載時檢查cookie,請使用'body.onload '事件 – ManseUK 2012-03-02 11:40:54

+0

你是對的@ManseUK。如果我想在刷新後讓cookie值保留在文本框中,我應該做什麼更改? – Acubi 2012-03-02 11:44:32