我有一个按钮,当点击它时应该删除一个cookie,调用一个从文本框中收集值的函数并将其保存为新的cookie值。
我遇到的问题是,在单击按钮后,该函数正在执行,就像cookie中有值一样。
我已经记录了cookie的值,它显示为null。为什么我的函数找不到值为null?
//when new player is pressed
$('#BtnPlayAsNew').button().click(function () {
$.cookie('name', null); //delete cookie
$('#Result').hide();
getUsername(); //call function
});
function getUsername() {
//get cookie
var cookie = $.cookie('name');
//check value of cookie
if (cookie == null || cookie == "") {
$('#controls').hide();
$('#NewUser').show();
$('#BtnUser').click(function () {
name=$('#tbUser').val();
$.cookie('name', name,{path:'/' });
$('#NewUser').hide();
$('#controls').show();
});
}else{
$('#NewUser').hide();
$('#controls').show();
}
}
答案 0 :(得分:1)
$.cookie('name', null);
不会删除Cookie,它会为其分配字符串"null"
,您可以通过console.log(cookie == "null");
进行检查,结果为true。相反,您可以使用javascript的cookie,其中包含过去设置的到期日期。因此,要设置cookie null,请改用:
document.cookie = 'name=; expires=Thu, 01 Jan 1970 00:00:00 UTC;';