2014-06-13 111 views
0

我有下面的代碼來檢查表單上的變化,當用戶導航離開window.onbeforeunload失去價值

window.onbeforeunload = confirmExit; 

confirmExit是處理支票更改的功能以及是否顯示給用戶的消息。然而,在函數內部,我需要檢查的文本框正在丟失它們的值,但是任何隱藏的字段都沒有。

兩個控件被下面的C#中的Page_Load設置:

txtForeName.Text = personDetails.Forename; 
ClientScript.RegisterHiddenField("hdnForename", personDetails.Forename); 

在confirmExit功能,我檢索如下的值範圍內的標記:

if ($("[id$='_txtForename']").val() != $('#hdnForename').val()) { 
    return true; } 

但正如我所說文本框的值爲空字符串,而隱藏字段保留其值。

有誰知道爲什麼會發生這種情況,以及如何解決它?

回答

1

您確定您的文本框選擇器有效嗎?

嘗試:

console.log('#<%=txtForeName.ClientID%>').val()); 

onbeforeunload內,看看你是否在控制檯中顯示的值。

+1

我知道評論有點長,但似乎並不是答案。 – Barmar

+0

@Barmar - 我沒有足夠的信息來提供更全面的答案。一些標記會有所幫助,但我認爲他的選擇器不起作用 – Ted

+0

我認爲文本框的選擇器工作正常,因爲它與保存時檢索值的方式完全相同,可以工作。 (雖然我會嘗試你發佈的方法) – atamata