每次刷新时都会出现对话框

时间:2018-05-17 16:33:14

标签: javascript web cookies primefaces dialog

我必须在我的输入网站中建立一个对话框。问题是,每次都出现,我无法关闭它(点击按钮只刷新网站,再次出现对话框)。我也知道原因,但我能够解决它。

这是我的对话

<p:dialog id="ac-wrapper" widgetVar="test" style='display: none; background:white;' modal="true"
                resizable="false" closeOnEscape="true" closable="true" visible="true">
                <div id="popup">    
                    <h2>Some Content</h2>
                        <input type="submit" name="submit" value="Submit"
                                onclick="DialogBox('hide')" />
                </div>
            </p:dialog>

以下是应该处理此问题的javascript:

 <script type="text/javascript">

            $ = jQuery;
            function DialogBox(hideOrshow) {

                if (hideOrshow == 'hide') {
                    localStorage.setItem("isShown",1);
                    document.getElementById('ac-wrapper').style.display = "none";
                    document.getElementById('ac-wrapper').visible="false";
                    $("#ac-wrapper").close();
                }
                else  if(localStorage.getItem("isShown") == null) {
                    document.getElementById('ac-wrapper').removeAttribute('style');
                    localStorage.setItem("isShown",1);
                }
            }

            window.onload = function () {
                setTimeout(function () {
                    if(localStorage.getItem("isShown") != 1 ){
                        DialogBox('show');
                    }
                    else if(localStorage.getItem("isShown")){
                        $("#ac-wrapper").remove();
                    }}, 1000);
            }
            </script> 

通过渲染网站,对话框始终显示,因为visible属性设置为“true”。我猜订单不正确。它应该检查本地存储,然后渲染元素,我没有让它正常工作。我也在这里寻找有类似问题的回答,但没有任何帮助。

1 个答案:

答案 0 :(得分:0)

问题是这个

 <input type="submit" name="submit" value="Submit"
                            onclick="DialogBox('hide')" />

因为它是一个输入类型提交,它默认为表单行为...这是使用GET重定向到相同的URL。将类型和值更改为&#34;按钮&#34;并且&#34;关闭&#34;并且你的问题将得到解决