簡體   English   中英

在JavaScript中訪問已更改的HiddenField值

[英]Access Changed HiddenField Value in JavaScript

我有一個依賴於HiddenField值的JavaScript。 這個HiddenField ,我們將其稱為needUpdate ,是一個布爾值,當需要用JavaScript更新頁面上的div時將其設置為true。 needUpdate位於通過Timer更新的UpdatePanel中。 我嘗試了兩種不同的方法,但都完成了一半。 第一種是將JavaScript放在更新面板之外,並使用我的PageRequestManager實例運行腳本,如下所示:

<asp:ScriptManager ID="scriptManager" runat="server" />

<script type="text/javascript">
    function DoUpdate(sender, args)
    {
        if ('<%= needUpdate.Value %>' == 'true') {
            // Code here... //
        }
    }
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(DoUpdate);
</script>

 <asp:UpdatePanel ID="replay" runat="server" Visible="false" UpdateMode="Conditional">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="replayTimer" EventName="Tick" />
    </Triggers>
    <ContentTemplate>
        <asp:HiddenField ID="needUpdate" runat="server" Value="false"/>
        <asp:Timer ID="replayTimer" runat="server" Interval="500" OnTick="replayTimer_Tick" />
        <!-- More Stuff Here -->
    </ContentTemplate>
</asp:UpdatePanel>

<div id="divToUpdate"></div>

現在,上面的代碼運行腳本,但是needUpdate的值即使在needUpdate已更改,也從未更改。 因此,我嘗試了下一部分代碼,將腳本放置在UpdatePanelContentTemplate區域中

    <ContentTemplate>
        <asp:HiddenField ID="needUpdate" runat="server" Value="false"/>
        <asp:Timer ID="replayTimer" runat="server" Interval="500" OnTick="replayTimer_Tick" />

        <script type="text/javascript">
            function DoUpdate()
            {
                if ('<%= hf_needUpdate.Value %>' == 'true') {
                    // Code here... //
                }
            }
            DoUpdate();
        </script>
        <!-- More Stuff Here -->
    </ContentTemplate>
</asp:UpdatePanel>

在更新腳本區域時,從未調用該代碼。 關於如何獲取由UpdatePanel更改的值以提供JavaScript函數的任何想法?

您正在將錯誤結果硬編碼到JavaScript if語句中。 該頁面的內容:

'<%= hf_needUpdate.Value %>' == 'true' ??

'false' == 'true' ??

這永遠不會改變,您需要獲取隱藏字段的當前值。

var needUpdate = document.getElementById("needUpdate").value;
if(needUpdate == "true) {
     // Do work
}

暫無
暫無

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

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