【问题标题】:How to disable a JavaScript function after page Page.IsPostBack如何在页面 Page.IsPostBack 之后禁用 JavaScript 函数
【发布时间】: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


【解决方案1】:

也许您也可以考虑这种方法 - 在您的 aspx 页面中添加一个 HiddenField 控件,用于标记表单是否已提交。

<asp:hiddenfield id="hfIsFormSubmitted" value="" runat="server"/>

这样,一旦触发了提交按钮OnClick 事件,您就可以为隐藏字段分配一个值,例如hfIsFormSubmitted.Value = "submitted";。然后在你的 JS 代码中检查这个值来决定是否需要运行 show() 函数。

【讨论】:

  • 谢谢伍迪。我通过您的示例找到了一种使其工作的方法。我将其添加到原始问题中。
【解决方案2】:

有更好的方法来达到你想要的结果。
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。

【讨论】:

    猜你喜欢
    • 2017-06-13
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 2022-01-16
    • 1970-01-01
    • 2012-03-22
    相关资源
    最近更新 更多