Jquery cookie插件 - 由设置cookie确定的条件内容

时间:2010-04-27 07:59:42

标签: jquery forms cookies conditional

我有一个向所有新网站访问者显示的注册表单。如果用户填写表单,下次他们访问该网站时,我希望显示一条“欢迎回来”消息,表单通常会在此处显示。

我试图通过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>

非常感谢任何想法或指示,谢谢。

3 个答案:

答案 0 :(得分: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);

根据必须触发的事件

,在您想要的地方执行此操作

答案 1 :(得分:0)

是。将其添加到

});
</script>

答案 2 :(得分:0)

BorisGuéry很接近:

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