仅在加载时显示模态一次

时间:2012-11-04 16:37:07

标签: jquery

我有一个显示模态对话框onload的页面。在模式被解除之前,用户需要检查并提交一个复选框(想想使用条款)。一旦发生这种情况,页面可以再次重新加载,但对话框永远不会再回来。最初我想过使用PHP会话,但我想在不重新加载页面的情况下用JS(jQuery)关闭对话框。有什么选择?我可以在会话期间使用cookie吗?

我目前的代码如下:

JS:

$(document).delegate('#myButton', 'click', function() {

     if ($('input[name="myCheckbox"]').is(':checked')) {
        $('#myDialog').remove();
    }
});

HTML:

<div id="myDialog">
   text
   <input type="checkbox" name="myCheckbox"> <input id="myButton" type="button" value="click me">
</div>  

3 个答案:

答案 0 :(得分:2)

您可以永久使用localStorage,也可以仅为一个会话使用sessionStorage

 localStorage.setItem('showModal',true);
 localStorage.getItem('showModal');

它是纯粹的javascript。无需在服务器端执行此操作。

答案 1 :(得分:0)

使用jQuery Cookie plugin例如

if ($.cookie('modal') != 'loaded')
{
   $.cookie('modal', 'loaded');
   // code to show modal
}

<强>更新

对于非插件解决方案,您可以查看Russ Cum's answer

答案 2 :(得分:0)

$(window).on('load',function(){
  if (document.cookie.indexOf('visited=true') == -1){

    $('#myModal').modal({show:true});
    var year = 1000*60*60*24*365;
    var expires = new Date((new Date()).valueOf() + year);
    document.cookie = "visited=true;expires=" + expires.toUTCString();
  }
});