目前,我有一个非常简单的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";
}
};
感谢所有方向:)
答案 0 :(得分:2)
也许您也可以考虑这种方法 - 在您的aspx页面中添加一个HiddenField控件,它标记表单是否已提交。
nil[undefined_index_variable] = raise "Fooo!" # => nil
这样,一旦触发了提交按钮<asp:hiddenfield id="hfIsFormSubmitted" value="" runat="server"/>
事件,您就可以为隐藏字段指定一个值,例如OnClick
。然后在JS代码中检查此值以确定是否需要运行show()函数。
答案 1 :(得分:1)
有更好的方法可以达到你想要的效果
1.不要将$("#MyDiv").show();
加入$(document)ready...
。代替
void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "showdiv", "$("#MyDiv").show();", true);
}
}