如何使用 jquery cookies 欢迎新用户或欢迎老用户?

How to welcome a new user or welcome the recurring user using jquery cookies?

我正在尝试使用 jquery 中的 cookie 为新老用户创建一个欢迎页面。但是,当我使用每个用户的新数据提交表单时,它并没有说 "Welcome New User"。它总是欢迎用户,就好像他已经在网站上提交了一个表单。

 <h1 class="center"> 
        <span id="wel"></span>
 </h1> 
 <form id="form" autocomplete="on">
    <br>
    <input type="text" name="firstname" id="firstname" placeholder="Enter the first name" pattern="[A-Za-z\-]+" maxlength="25">
    <br>Last Name:
    <br>
    <input type="text" name="lastname" id="lastname" placeholder="Enter the last name" pattern="[A-Za-z\-]+" maxlength="25">
    <input type="submit" id="submit" value="Place Order!" />
 </form>

    var customername = []; // outside the function
    var fname = $("#firstname").val();
    var lname = $("#lastname").val();     
    customername = $.cookie('fullname', fname + " " + lname, {expires: 365});
    if(customername == null) {
            $("#wel").html("Welcome New Customer");
        } else {
            $("#wel").html("Welcome " + $.cookie("fullname"));
        }

问题是 cookie 将总是 创建,传递空值,因为您在检查之前直接创建 cookie它存在:

customername = $.cookie('fullname', fname + " " + lname, {expires: 365});
if(customername == null) {}

在上面的代码中,customername 永远不会有 null 的值。要解决这个问题,您需要做的是在函数外部定义 customername 变量,但不要为其分配任何内容(甚至 'null' 也不行):

var customername;
if(customername == null) {
    $("#wel").html("Welcome New Customer");
} else {
    $("#wel").html("Welcome " + $.cookie("fullname"));
}

然后将 cookie 创建包装在表单提交中:

$("form").submit(function(){
    var fname = $("#firstname").val();
    var lname = $("#lastname").val();     
    customername = $.cookie('fullname', fname + " " + lname, {expires: 365});
});

这样,当用户访问网站时,cookie 不会自动创建;它只会在提交表单时创建。

希望对您有所帮助! :)