Jquery cookie插件 - 在用户提交表单时设置cookie

时间:2010-04-28 09:31:37

标签: jquery forms cookies

我想在用户提交表单时设置Cookie。

我正在处理一些基于用户选中复选框设置cookie的遗留代码,但希望在用户提交表单时简单地设置cookie。

这就是我所拥有的,当选中复选框时,它会起作用:

$().ready(function()
{
    $('.application-form').submit(function(e)
    {
        e.preventDefault();

        if ($('.application-form input[name=marketing]').is(':checked'))
        {
            $.cookie('agreed_to_terms', '1', { path: '/', expires: 999999 });
        }
    });
});

这很好用,但我不想在检查“营销”输入时设置cookie,而只是在表单提交时。像这样:

$().ready(function()
{
    $('.application-form').submit(function(e)
    {
        e.preventDefault();

        if ($('.application-form').submit();)
        {
            $.cookie('agreed_to_terms', '1', { path: '/', expires: 999999 });
        }
    });
});

但是,这并没有成功设置cookie,任何想法都会很棒,谢谢。

2 个答案:

答案 0 :(得分:5)

$(document).ready(function() {
  $('.application-form').submit(function(e) {
    e.preventDefault();
    $.cookie('agreed_to_terms', '1', { path: '/', expires: 999999 });
  });
});

你不需要那里的if条件,因为它似乎正在测试表单是否已经提交,并且你已经知道它有,因为你在表单的提交事件处理程序中。

答案 1 :(得分:5)

如果条件允许,您无需检查提交返回值。

$().ready(function()
{
    $('.application-form').submit(function(e)
    {
        e.preventDefault();

        $.cookie('agreed_to_terms', '1', { path: '/', expires: 999999 });
    });
});