Jquery cookie函数找不到null值

时间:2015-05-07 19:46:13

标签: javascript jquery cookies jquery-cookie js-cookie

我有一个按钮,当点击它时应该删除一个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();
    }
}

1 个答案:

答案 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;';