【问题标题】:ASP.NET Form fields are populated after jquery .ready() eventASP.NET 表单字段在 jquery .ready() 事件之后填充
【发布时间】:2014-08-05 00:32:44
【问题描述】:

我有一个遗留的 .NET WebForms 应用程序,它填充页面上的多个字段(这些字段是禁用的输入文本字段)。为了说明,假设这些字段是学校课程的成绩。这些字段是动态填充的。 现在假设我想填充另一个字段(也许是平均成绩)。我打算通过 JQuery 在客户端执行此操作。

奇怪的是,在 JQuery 的 ready 函数中,这些字段的值没有被填充。 (我还尝试了稍后调用的 $(window).load - 但结果相同)。所以,$("#fieldid1").val() 是空的。所有其他值(id、innerHTML 等)填充,所以我知道我正在查看正确的字段。

但是,在某些时候,该字段会填充来自服务器的值。我在屏幕上看到它,如果我有 click() 处理函数,我会为同一个调用获得正确的值。

是 WebForms 行为吗?或者这个表单引擎做了一些有趣的事情。我查看了 Firebug - 加载表单后没有 AJAX 调用...

【问题讨论】:

  • 这是经典的 asp 吗?因为大多数时候使用 web 表单,您的控件来自在服务器级别上运行的父标记。让您引用一个未被 Web 表单操作的 ID。` $('#').val()` 或尝试通过其类访问它。 '$(".fieldid1Class").val()'
  • 检查呈现的 HTML 并查看 ID fieldid1 是否存在。有时 ASP.NET 'mangles' ID's 以确保它们是唯一的。我在这里写了一些解决方案:weblogs.asp.net/stevewellens/…
  • @SteveWellens ,你的博客让它变得更加困难。对于需要在客户端访问的控件,您可以将 ClientIdMode 设置为 Static(或从页面或 web.config 级别设置该属性)或使用内联 ASPX 标记嵌入 ID。
  • Felix,如果您需要帮助解决您的问题,您应该嵌入相关代码。见How to create a Minimal, Complete, and Verifiable example
  • @mason - 撰写博客时 ClientIdMode 不可用。

标签: jquery asp.net webforms


【解决方案1】:

原来这些字段使用 iframe。我也将我的 jquery 代码放在同一个 iframe 中。但是,它们确实是在我的 jquery ready() 代码执行之后从父页面填充的。谜团解开了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多