我有一个显示模态对话框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>
答案 0 :(得分:2)
您可以永久使用localStorage,也可以仅为一个会话使用sessionStorage
localStorage.setItem('showModal',true);
localStorage.getItem('showModal');
它是纯粹的javascript。无需在服务器端执行此操作。
答案 1 :(得分:0)
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();
}
});