2012-11-04 170 views
0

我有一个显示模式对话框加载的页面。在模式被解除之前,用户需要检查并提交一个复选框(请考虑使用条款)。一旦发生这种情况,页面可以重新加载,但对话框永远不会回来。最初我想过使用PHP会话,但我想用JS(jQuery)忽略对话框而不重新加载页面。什么是替代方案?我可以在会话期间使用cookies吗?只显示加载模式一次

我当前的代码如下所示:

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> 

回答

2

您可以使用localStorage的永久或sessionStorage的只是一个会话

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

,它是纯粹的JavaScript。不需要在服务器端进行。

+0

嗯,我从来没有用过...我觉得这是我正在寻找的。所以,我把这个添加到click函数中,并用条件包装我的onload模态函数 - 如果是true?.. – santa

+0

是的。在onload中,只需检查用户是否已通过localStorage.getItem检查复选框 –

+0

请牢记浏览器支持。现在IE是最有问题的。需要8+。 http://caniuse.com/namevalue-storage –

0

使用jQuery Cookie plugin

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

UPDATE

对于非插件的解决方案,你可以检查出Russ Cum's answer

+0

没有插件就无法做到类似吗? – santa

+0

我已经用非插件链接修改了我的解决方案。 – chridam