2010-04-27 3 views
0

У меня есть форма регистрации, которая отображается всем новым посетителям сайта. Если пользователь заполняет форму, в следующий раз, когда они посещают сайт, я хотел бы отобразить сообщение «добро пожаловать», где обычно будет сидеть форма.JQuery cookie plugin - условное содержание, определяемое установленным 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> 

И я устанавливаю мое печенье здесь:

<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> 

Это установит куки, когда пользователь проверил коробку, но теперь мне нужно сделать somehting так:

, если куки установлен, выполните следующие действия:

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

иначе это сделать:

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

Любые идеи или указатели будут очень признателен, спасибо.

ответ

0

Борис Guery близко:

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 и проверьте, установлен ли он.

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

ли это, где вы хотите, в зависимости от события, которое должно быть инициировано

+0

Спасибо, это выглядит, как он будет делать трюк. Однако, должен ли этот блок быть обернут в теги javascript? Когда я это делаю, он отображает полный HTML как текст, а не выполняет conditonal. Извинения, но мой js очень ограничен. Спасибо – Dave

+0

Вы должны сделать это в js, я обновил код, чтобы создать сообщение и обернуть его в div, а затем добавить его туда, где вы хотите в теле, например. –

+0

Большое спасибо, но решение Jeffery To, похоже, получилось лучше – Dave

0

Да. Добавьте его чуть более

}); 
</script> 
+0

Спасибо. Я принимаю эти ответы означает, что я хотел бы сделать это: <сценарий типа = "текст/JavaScript"> если (1 == $ .cookie (rspca_signed_up)) {

Welcome back, John

} еще { \t
Но когда я это делаю, я снова не могу заставить условие работать, просто получайте HTML-вывод в виде текста. – Dave

Смежные вопросы