2012-11-17 138 views
1

這是我的情況。 我有一個下拉菜單選擇家中的國家。閱讀cookies返回undefined

如果沒有cookie,我將cookie默認設置爲「US」,然後用戶在新標籤中打開鏈接並轉到結帳頁面,我過濾其他國家並在下拉選擇中僅顯示該選定國家/地區,但一切正常在第一個選項卡上時,它將國家更改爲DE在第二個選項卡上Cookie是DE,但該國仍然是美國。

有兩種選擇,

<select id="country"> 
    <option>Select Country</option> 
    <option value="US">Select Country</option> 
</select> 

我想要做的就是

function readCookie(k){return(document.cookie.match('(^|;)'+k+'=([^;]*)')||0)[2]} 

或任何其他函數讀取Cookies與這裏的一些描述What is the shortest function for reading a cookie by name in JavaScript?

document.getElementById('country').onchange = function() { 
    this.options.length = 0; 
    this.options[1] = new Option(readCookie('country'),readCookie('country')); 
    this.options[1].setAttribute("selected","selected"); 
} 

他們返回未定義,但當我檢查配置文件時,cookie就在那裏。基本上,我只是想基於cookie的

續約選項,當我做

document.getElementById('country').onchange = function() { 

    alert(readCookie('country'); //returns undefined 
} 
+0

我不能讀任何cookie,這很奇怪。 – flakerimi

回答

0

你創建一個cookie時檢查路徑?確保路徑是/,我有時會忘記並創建2個餅乾或無法刪除舊的餅乾。

+0

Yeap,它是 country = United + States; expires =星期六,2012年11月17日12:52:53 GMT;路徑= /;域= .local.dev;僅Http – flakerimi