【问题标题】:ASP .NET Validators broken in FireFoxASP .NET 验证器在 FireFox 中损坏
【发布时间】:2010-10-04 14:40:22
【问题描述】:

我正在努力解决 ASP .NET Validators JavaScript 问题。以下函数(框架生成代码的一部分)尝试使用 control.Field 语法访问 validatioGroup 属性值。它在 IE 中运行良好,但在 FF 中该值始终为 undefined。因此,验证总是通过,而我的验证场景被破坏了......有没有办法绕过它?

function IsValidationGroupMatch(control, validationGroup) {
 if ((typeof(validationGroup) == "undefined") || (validationGroup == null)) {
 return true;
 }
 var controlGroup = "";
 if (typeof(control.validationGroup) == "string") {
 controlGroup = control.validationGroup;
 }
 return (controlGroup == validationGroup);
} 

谢谢,帕维尔

【问题讨论】:

  • 什么版本的.net?你在使用 ajax 扩展吗?
  • IIS 中的框架版本设置为 2。我是否使用 ajax 扩展?嗯,怎么查?
  • IIS 将针对 2.0 和 3.5 显示框架 2.0(不过是两个不同的版本号) - 您应该查看您的项目并查看您正在使用的框架版本。
  • 项目属性是 3.5。
  • @dragonfly 你在使用ScriptManagerUpdatePanel 控件吗?

标签: javascript asp.net validation


【解决方案1】:

这是罪魁祸首:

<xhtmlConformance mode="Strict"/>

我在 web.config 中有那行。设置为默认值,即 Transitional 解决了该问题。这里是主题背景:Client side validation in FF

【讨论】:

    【解决方案2】:

    如果 ASP.NET(错误)determines 浏览器不支持通过客户端脚本进行验证,则验证将仅在服务器端执行。

    似乎只有在您的事件处理程序在事件处理程序方法的开头包含 Page.IsValid 检查时才会发生服务器端验证。

    如果浏览器禁用了 javascript,最好还是包含此检查。

    public void MyButton_Click(object sender, EventArgs e)
    {
        if (!Page.IsValid) return;
    
        ... the rest of your event handler ....
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 2010-11-13
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      相关资源
      最近更新 更多