【问题标题】:window.onbeforeunload losing values in text boxwindow.onbeforeunload 在文本框中丢失值
【发布时间】:2014-06-13 12:15:40
【问题描述】:

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

window.onbeforeunload = confirmExit;

confirmExit 是一个处理更改检查以及是否向用户显示消息的函数。但是在函数内部,我需要检查的文本框正在丢失它们的值,但任何隐藏字段都没有。

两个控件都在 Page_Load 上设置如下 c#:

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

在 confirmExit 函数的标记中,我正在检索如下值:

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

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

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

【问题讨论】:

    标签: c# javascript jquery onbeforeunload hiddenfield


    【解决方案1】:

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

    试试:

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

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

    【讨论】:

    • 我知道评论有点长,但似乎不是答案。
    • @Barmar - 我没有足够的信息来提供更完整的答案。一些标记会有所帮助,但我认为他的选择器不起作用
    • 我很肯定文本框的选择器可以正常工作,因为它与保存时检索值时完全相同,这确实有效。 (虽然我也会尝试你发布的方法)
    • @Ted 我不熟悉这种语法,当我尝试它时,我在尝试加载页面时遇到了编译错误。编辑:将尝试发布最相关的标记,因为它有很多。
    • @atamata - 你使用什么服务器语言?将ClientId 更改为ClientID(我的错)
    猜你喜欢
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多