簡體   English   中英

如何在頁面Page.IsPostBack之后禁用JavaScript功能

[英]How to disable a JavaScript function after page Page.IsPostBack

當前,我有一個非常簡單的div,它具有顯示: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";
        }
    }; 

感謝所有方向:)

也許您也可以考慮使用這種方法-在aspx頁面中添加一個HiddenField控件,該控件用於標記表單是否已提交。

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

這樣,一旦觸發了提交按鈕的OnClick事件,就可hfIsFormSubmitted.Value = "submitted";隱藏字段分配一個值,例如hfIsFormSubmitted.Value = "submitted"; 然后在您的JS代碼中檢查該值,以確定是否需要運行show()函數。

有更好的方法來獲得所需的結果。
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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM