【发布时间】:2016-08-22 00:45:35
【问题描述】:
目前,我有一个非常简单的 div,它有一个 display: none;财产。当页面加载时,我调用 $("#MyDiv").show();使 div 弹出并延迟显示给用户。从那里他们可以在表单中输入信息并使用 asp.net 按钮提交。
一旦用户输入信息并提交表单,它会回传到同一页面,但随后会再次运行 JavaScript 函数并再次显示 div。回发后如何禁用此功能?
我知道你可以使用代码:
if (Page.IsPostBack){}
但我不确定如何禁用该功能。这就是我的函数显示 div 的样子,非常简单:
function testpopup() {
setTimeout(function () { $("#MyDiv").show(); }, 1500);
};
有什么想法吗?谢谢。
好的,我想出了一个办法。我几乎用 N 的值设置了一个隐藏的输入字段,如下所示:
<input type="hidden" id="IsFormSubmitted" value="N" runat="server" />
然后我让函数评估并将输入字段的值设置为 Y,如下所示:
'
function Password() {
var val = document.getElementById("IsFormSubmitted");
if(val.value == "N")
{
setTimeout(function () { $("#MyDiv").show(); }, 1500);
val.value = "Y";
}
};
感谢所有的指导:)
【问题讨论】:
-
在客户端,通过设置cookie或localstorage
-
在 if(!Page.IsPostBack) 里面,添加 RegisterStartupScript 将你的函数添加到页面中
-
页面加载是否需要延迟?如果没有,请在您的 div 上放置一个 runat="server" 并给它一个 ID。然后,当页面首次加载时,只会显示您的 div。然后在您的 IsPostBack 中隐藏您的 div divID.Style.Add("display", "none");.
-
嗯,好的,我会尝试处理这些回复,并在完成后回复您。您认为将 Page.IsPostBack 代码放在 aspx.cs 文件中还是仅在 aspx 文件中的 javascript 中更好?
标签: javascript jquery html css asp.net