[英]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
已更改,也從未更改。 因此,我嘗試了下一部分代碼,將腳本放置在UpdatePanel
的ContentTemplate
區域中
<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.