2014-06-13 67 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