2012-11-04 67 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