2013-07-30 151 views
0

我有一個表格供用戶提交。當他們點擊提交按鈕時,我使用jQuery發送表單,但在它嘗試檢索存儲在cookie中的用戶電子郵件地址之前。如果無法找到它,JavaScript將發送表單並彈出一個允許用戶輸入其電子郵件地址的彈出窗口,並將其保存到cookie中,以便下次檢索。我直接從w3schools複製代碼,因爲我無法解決這個問題。設置一個Cookie - 新手

現在,它不起作用。

請幫忙。這是我所有的代碼。

謝謝。

//#submit-form CLICK, SUBMIT FORM, BRING UP EMAIL 
$(document).ready(function(){ 
    $("#submit-form").click(function(){ 
     $("#form-wrap").addClass("fly-out-right"); 
     setTimeout(function(){ 
      $("#form-wrap").removeClass("animate fly-out-right"); 
     }, 300); 
     function checkCookie(){ 
      username=getCookie('username'); 
      if (username!=null && username!=""){ 
       $("#submitter").val(username); 
       $("#form").submit(); 

      } else { 
       $("#email-wrap").addClass("animate"); 
       $("#form").submit(); 
       $("#submit-email").click(function(){ 
        if (username!=null && username!=""){ 
         username=$("#email").val(); 
         setCookie('username',username,365); 
        } 
       }); 
      } 
     } 
    }); 
}); 

function getCookie(c_name){ 
    if (document.cookie.length>0){ 
     c_start=document.cookie.indexOf(c_name + "="); 
     if (c_start!=-1) 
     { 
      c_start=c_start + c_name.length+1; 
      c_end=document.cookie.indexOf(";",c_start); 
      if (c_end==-1) c_end=document.cookie.length; 
      return unescape(document.cookie.substring(c_start,c_end)); 
     } 
    } 
    return ""; 
} 

//SETCOOKIE FUNCTION 
function setCookie(c_name,value,expiredays) 
{ 
var exdate=new Date(); 
exdate.setDate(exdate.getDate()+expiredays); 
document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : "; 
expires="+exdate.toUTCString()); 
} 
+0

你能包括與標記提琴鏈接?與餅乾的事情是,即使它設置了jQuery/JavaScript它需要重新加載才能生效。 – jerrylow

+0

爲什麼不存儲他們的電子郵件服務器端?此外,使用w3schools就像使用每日郵件作爲一個有聲望的新聞來源。停止。使用Mozilla開發者網絡或類似的。 – Amelia

回答

0

如果你不介意使用jQuery插件 - 試試這個[使用方便&方式較少,爲你的代碼] https://github.com/carhartl/jquery-cookie

+0

這可能是我需要做的。我非常喜歡使用jQuery,但我一直在接受建議,堅持純JS。我會試一試。 – user2632556

+0

如果你真的想用js =>來下載插件,並看看代碼。大部分是不使用jQuery編寫的;) – ToastedCrack