Плагин Jquery cookie - условный контент, определяемый установленным cookie - PullRequest
0 голосов
/ 27 апреля 2010

У меня есть форма регистрации, которая отображается для всех новых посетителей сайта. Если пользователь заполняет форму, в следующий раз, когда он посещает сайт, я хотел бы отобразить сообщение «Добро пожаловать назад», где обычно будет форма.

Я пытаюсь сделать это с помощью плагина 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>

Это установит 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>

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

Ответы [ 3 ]

0 голосов
/ 27 апреля 2010

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

});
</script>
0 голосов
/ 27 апреля 2010

Борис Гери близок:

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 голосов
/ 27 апреля 2010

Просто получите 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);

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

...