2012-11-04 2 views
0

모달 대화 상자가 표시되는 페이지가 있습니다. 모달을 기각하기 전에 사용자가 확인하고 제출해야하는 체크 박스가 있습니다 (이용 약관을 생각하십시오). 이렇게되면 페이지를 다시로드 할 수 있지만 대화 상자가 다시 나타나서는 안됩니다. 원래 PHP 세션 사용을 생각했지만 JS (jQuery)를 사용하여 페이지를 다시로드하지 않고 대화 상자를 닫으려고합니다. 대안이란 무엇입니까? 세션 기간 동안 쿠키를 사용할 수 있습니까?한 번만 모달 표시

나의 현재 코드는 다음과 같습니다

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'); 

그리고 그것은 순수한 자바 스크립트입니다. 서버 측에서 처리 할 필요가 없습니다.

+0

음을 확인할 수 있습니다, 내가 생각 ... 있음을 사용한 적이 이것은 내가 찾고 있었던 것입니다. 그래서, 이것을 click 함수에 추가하고 조건을 가진 onload 모달 함수를 랩핑합니다 - 사실이라면 .. – 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

관련 문제