2010-04-27 83 views
0

我有一個註冊表單,它向所有新網站訪問者顯示。如果用戶填寫表單,下次他們訪問該網站時,我希望顯示一個「歡迎回來」的信息,表單通常位於此處。Jquery cookie插件 - 由Cookie設置的條件內容

我想通過jQuery cookie插件(http://plugins.jquery.com/project/Cookie)來做到這一點。

我的形式是這樣的:

<div id="sign_up_form_wrapper"><form id="sign_up" action="" method="POST" name="form"> 
<input type="checkbox" name="checkbox" id="checkbox" value="1">&nbsp; I accept the terms and conditions</a> 
<br /><br /><input type="submit" value="ENTER"> 
</form></div> 

我在這裏設置我的cookie:

<script type="text/javascript" language="javascript"> 
$().ready(function() 
{ 
    $('#sign_upm').submit(function(e) 
    { 
     e.preventDefault(); 

     if ($('#sign_up input[name=checkbox]').is(':checked')) 
     { 
      $.cookie('agreed_to_terms', '1', { path: '/', expires: 999999 }); 
     } 
    }); 
}); 
</script> 

這將設置Cookie當用戶選中該框,但現在我需要做服用點是這樣的:

如果cookie已設置,這樣做:

<div id="sign_up_form_wrapper"> 
<p>Welcome back, John</p> 
</div> 

否則這樣做:

<div id="sign_up_form_wrapper"> 
<!-- full form code here --> 
</div> 

任何意見或指針將不勝感激,謝謝。

回答

0

鮑里斯·伽利湖靠近:

HTML:

<div id="sign_up_form_wrapper"> 
<!-- full form code here --> 
</div> 

的JavaScript:

$(function() { 
    if ($.cookie('agreed_to_terms') == 1) { 
     $('sign_up_form_wrapper').html('<p>Welcome back, John</p>'); 
    } 
}); 
0

只需獲取cookie並檢查它是否設置。您想在哪裏,這取決於有被觸發

+0

謝謝,這看起來像它會做的伎倆。 但是,如果這個塊被封裝在JavaScript標籤中?當我這樣做時,它將完整的HTML顯示爲文本而不是執行條件。 道歉,但我的js是非常有限的。 謝謝 – Dave 2010-04-27 08:22:39

+0

您必須在js中執行此操作,我更新了代碼以創建消息並將其包裝在div中,然後將其附加到身體所需的位置,例如。 – 2010-04-27 09:56:47

+0

非常感謝,但Jeffery To的解決方案似乎效果更好 – Dave 2010-04-28 09:16:32

0

是事件

var $signupFormWrapper = $('<div />'); 

if (1 == $.cookie(agreed_to_terms)) 
{ 
    var $message = $('<p />').html('Welcome back, John'); 
} else { 
    var $message = $('<p />').html('<form>Your full form</form>'); 
} 

$signupFormWrapper.append($message); 

執行此操作。它添加剛剛超過

}); 
</script> 
+0

謝謝。 我服用這些答覆的意思是我會做這樣的: <腳本類型= 「文/ JavaScript的」> 如果(1 == $ .cookie(rspca_signed_up)){

Welcome back, John

}其他{ \t
} 但是當我這樣做時,我再次無法獲得條件工作,只是獲取HTML輸出爲文本。 – Dave 2010-04-27 08:39:20