【问题标题】:Why do i get the error "'Page_Validators' is undefined" when I switch the IE Browser Mode from IE9 to IE8?当我将 IE 浏览器模式从 IE9 切换到 IE8 时,为什么会出现错误“'Page_Validators' is undefined”?
【发布时间】:2013-01-07 02:00:15
【问题描述】:

我正在使用 ASP.NET 不显眼的验证来开发网页。当我使用默认的 IE9 浏览器模式在 IE9 中查看我的页面时,该页面按预期工作。但是,当我简单地将浏览器模式从 IE9 切换到 IE8 时,在页面重新加载时收到以下 JavaScript 错误:

“错误:‘Page_Validators’未定义”

不显眼的验证需要一个名为“jquery”的 ScriptResourceMapping。那是到位的。我还在母版页中使用了<script> 标记以在所有页面上包含 jquery。

另外,我在母版页上有一个空标记,使我的用户控件能够通过控件标记中的 ScriptManagerProxy 标记加载其他 javascript。

母版页上的相关标记:

<%@ Master Language="C#" AutoEventWireup="true" Inherits="Site" Codebehind="Site.master.cs" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

<script src="Scripts/jquery-1.8.3.min.js" type="text/javascript"></script>

<title></title>

<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>

</head>

有什么想法吗?

【问题讨论】:

  • 它们是未定义的吗!?或者您在加载该脚本部分之前尝试在页面完全加载之前使用它们?
  • 我发现是这个调用导致了错误:// disable validators $('#CoappPersonalInformationForm.failureNotification').each(function () { ValidatorEnable(this, false); });
  • 页面加载完毕后尝试调用,看看问题是否解决。
  • 未渲染的 ASP 代码无助于调试浏览器问题。它当然不能帮助我们解决问题。如果您查看浏览器实际看到的呈现的 HTML/JS 代码可能会有所帮助。
  • ValidatorEnable(this, false); 调用是从 jquery 的文档就绪函数发出的。

标签: jquery asp.net unobtrusive-validation ie8-browser-mode


【解决方案1】:

您可能在从 JavaScript 文件加载之前调用它。尝试使用ready 扭曲它

$(document).ready(function() {
   $('#CoappPersonalInformationForm.failureNotification').each(function () 
     {
        ValidatorEnable(this, false); 
     });
});

【讨论】:

  • 谢谢。试过了。没用。函数 Configure_CoAp() 已经被 $() 调用了。我尝试了您的建议,希望将调用包装在另一个准备好的文档中,以便在填充 Page_Validators 数组后它会以某种方式排队。
  • @threadster 该函数一般是由javascript文件加载的,还是由于某种原因不是?
猜你喜欢
  • 2012-11-21
  • 2011-08-10
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
  • 2014-12-30
  • 2019-01-15
  • 1970-01-01
  • 2015-11-23
相关资源
最近更新 更多