读取cookie返回undefined

时间:2012-11-17 11:25:01

标签: javascript

这是我的情况。 我有一个选择国家的下拉菜单。

如果没有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]}  

或任何其他功能,以读取像What is the shortest function for reading a cookie by name in JavaScript?

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

他们返回undefined但是当我用profile检查时,cookie就在那里。基本上,我只想基于cookie更新选项

当我做的时候

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

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

2 个答案:

答案 0 :(得分:0)

您在创建Cookie时检查了路径吗?确保路径是/,我有时会忘记并创建2个cookie或无法删除旧cookie。

答案 1 :(得分:0)

我转而使用localstorage。