2015-05-07 62 views
0

我有一個按鈕,點擊時應該刪除一個cookie,調用一個從文本框中收集一個值並將其保存爲新的cookie值的函數。JQuery cookie功能找不到空值

我遇到的問題是點擊按鈕後,函數正在執行,就好像cookie中有一個值。

我記錄了cookie的值,它顯示爲空。爲什麼不是我的函數發現值爲空?

//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

您正在使用過時的jquery-cookie版本。訪問https://github.com/js-cookie/js-cookie/releases,獲取第一個版本並閱讀你想要的特定版本/標籤的文檔。正如@Samurai指出的那樣,去除「null」參數在幾個月前已被棄用和刪除。 –

回答

1

$.cookie('name', null);不會刪除的cookie,它分配字符串"null"它,你可以通過console.log(cookie == "null");這使得真正的檢查。相反,您可以使用JavaScript的cookie,並在過去設置過期日期。因此,要設置cookie null,請改用此代碼:

document.cookie = 'name=; expires=Thu, 01 Jan 1970 00:00:00 UTC;';