2017-03-24 7 views
0

jqueryでクッキーを使用している新規ユーザーと元ユーザーのためのウェルカムページを作成しようとしています。ただし、各ユーザーの新しいデータを使用してフォームを送信すると、「ようこそ新規ユーザー」は表示されません。あたかも彼が既にサイト上にフォームを提出しているかのようにユーザーを歓迎します。上記で新しいユーザーを歓迎するか、jquery Cookieを使用して繰り返しユーザーを歓迎する方法は?

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

<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")); 
     } 

答えて

0

問題は、は直接それが存在することを確認する前にクッキーを作成しているため、クッキーが常には、空の値を通過し、作成されますということですコードcustomernameは決してnullの値を持ちません。

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

はその後の内部でクッキーの作成をラップ:この問題を回避するには、何をする必要がある機能のcustomername変数外の定義ではなく、それには何も割り当て(でも「NULL」ではない)でありますフォーム提出:

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

このように、ユーザーがサイトにアクセスすると、Cookieは自動的に作成されません。フォーム提出時にのみ作成されます。

希望すると便利です。 :)

+0

コードの 'var customername'ブロックを持つものも関数の外にあるべきですか? –

+0

技術的には、コード内には「機能」は全くありません。 'そのまま'の上にコードを投稿する必要があります。上部のセクションが下部セクションの真上にあり、結合されたコードを必ず '

関連する問題