我必须在我的输入网站中建立一个对话框。问题是,每次都出现,我无法关闭它(点击按钮只刷新网站,再次出现对话框)。我也知道原因,但我能够解决它。
这是我的对话
<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”。我猜订单不正确。它应该检查本地存储,然后渲染元素,我没有让它正常工作。我也在这里寻找有类似问题的回答,但没有任何帮助。
答案 0 :(得分:0)
问题是这个
<input type="submit" name="submit" value="Submit"
onclick="DialogBox('hide')" />
因为它是一个输入类型提交,它默认为表单行为...这是使用GET重定向到相同的URL。将类型和值更改为&#34;按钮&#34;并且&#34;关闭&#34;并且你的问题将得到解决