如何在页面之后禁用JavaScript函数.IsPostBack

时间:2016-04-27 15:40:42

标签: javascript jquery html css asp.net

目前,我有一个非常简单的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";
        }
    }; 

感谢所有方向:)

2 个答案:

答案 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);
    }
}
  1. 将包含所有控件的div放入UpdatePanel。