0

当用户导航离开时,我有以下代码来检查表单上的更改

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; }

但正如我所说,文本框的值是一个空字符串,而隐藏字段保留了它的值。

有谁知道为什么会发生这种情况以及如何解决?

4

1 回答 1

1

您确定您的文本框选择器有效吗?

尝试:

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

在 onbeforeunload 中,看看你是否得到了控制台中显示的值。

于 2014-06-13T12:33:11.770 回答