【问题标题】:Why does the following jquery tell me that my cookie still exist?为什么下面的 jquery 告诉我我的 cookie 仍然存在?
【发布时间】:2014-01-07 16:49:04
【问题描述】:

我有一个登录表单,它使用 cookie 来记住用户名输入和复选框选择的状态。我已经实现了一个按钮来重置表单,如下所示:

<form id="login" action="~/Login?ReturnUrl=%2F" method="POST" class="form-horizontal">
    ...
    <input id="formReset" type="reset" value="Reset" class="btn btn-default"/>
</form>

我已经实现了带有警报的 jquery,只是为了告诉我发生了什么。我不明白的是,它总是告诉我 cookie 存在,即使当我在 Chromes 开发人员控制台中检查 Resources -> Cookies 时它没有显示出来。我知道如果我在“记住我”复选框设置为 true 的情况下登录,cookie 会被设置,如果我再次登录且复选框设置为 false,它会被取消设置。

我在这里做错了什么?

<script type="text/javascript">
    $('#formReset').click(function() {
        if ($.cookie('loginCookie') === null || $.cookie('loginCookie') === "") {
            alert("Cookie does not exist");
        } else {
            // $.removeCookie('loginCookie');
            alert("Cookie does exist");
        }
        $(this).closest('form')("input[type=text], textarea").val("");
    });
</script>

【问题讨论】:

  • try: if (!$.cookie('loginCookie')) {} 而不是你的 if
  • 您确定您的=== null 检查有效吗?不能也是undefined 吗? (我想,但没有 js 向导,== null 会更正确?

标签: javascript jquery cookies


【解决方案1】:

您正在使用严格的相等运算符,对于不存在的 cookie 项 $.cookie 返回 undefined,因此条件失败,请尝试使用否定运算符:

if (!$.cookie('loginCookie'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    相关资源
    最近更新 更多