页面刷新后保持slideToggle()div打开?

时间:2011-11-14 15:43:59

标签: jquery

我有一个使用slideToggle()隐藏的表单。我需要做的是允许用户在点击“显示表单”链接后查看表单,填写表单并点击提交。然后,如果有任何错误允许页面刷新,div仍然显示。

换句话说,如何防止slideToggle()在页面刷新时重置。否则,用户必须再次显示表单以查看错误。我只是使用基本的PHP_SELF和一些代码而不是AJAX,因为我想让它变得简单。

这是我目前的JS:

$('a#booknow').click(function() {
$('#formcontain').slideToggle('slow', function() {
    $(this).toggleClass('houdini');
});
return false;
});

谢谢

2 个答案:

答案 0 :(得分:2)

我会使用一个cookie,另外我会使用plugin(因为编写客户端cookie管理代码会让我受伤)。

$('a#booknow').click(function() {
    $('#formcontain').slideToggle('slow', function() {
        $(this).toggleClass('houdini');
    });
    $.cookie('form_visible', $('#formcontain').is(':visible').toString());
    return false;
});

然后在页面加载:

$(function() {
    if($.cookie('form_visible') == 'true') {
        $('#formcontain').show();
    } else {
        $('#formcontain').hide();
    }
});

答案 1 :(得分:1)

要保存状态,您应该使用客户端存储,例如cookie。 你可以在一个SESSION变量中保存JS的状态(然后你需要以某种方式告诉PHP状态是什么,也许是使用ajax)。